Internship Tracking System for IT Undergraduates
Internify is a comprehensive platform designed to help IT undergraduates streamline their internship search and application process. The system addresses the common challenges students face when managing multiple internship applications, keeping track of deadlines, and organizing their CVs for different opportunities.
Built with Express.js and PostgreSQL, the platform provides a centralized hub where students can discover opportunities, manage their applications, and store their CVs securely in the cloud. The system emphasizes user experience, security, and scalability to serve the growing community of IT students.
Browse and search for internship opportunities specifically curated for IT undergraduates with advanced filtering options.
Track all internship applications in one place, monitoring their status from submission to final decision.
Create, update, and manage multiple versions of CVs for different types of internship applications.
Detailed company information, culture insights, and past internship experiences shared by other students.
Never miss an application deadline with automated email reminders and calendar integration.
Visualize application statistics, success rates, and internship market trends for IT students.
Express.js server handling all business logic, authentication, and data validation with proper error handling and logging.
Relational database storing user profiles, internship listings, applications, and CV metadata with optimized schema design.
Secure cloud storage for CV files with pre-signed URLs for download, ensuring data privacy and scalability.
JWT-based authentication with refresh tokens, password hashing using bcrypt, and role-based access control.
Designed a normalized PostgreSQL schema with proper relationships between users, internships, applications, and CVs. Implemented indexing strategies for optimal query performance and used foreign keys to maintain referential integrity.
Implemented secure file upload using Multer middleware with file type validation, size limits, and virus scanning. CVs are stored in AWS S3 with unique identifiers and pre-signed URLs for secure, time-limited access.
Comprehensive security measures including JWT authentication, password hashing with bcrypt, input validation, SQL injection prevention, and CORS configuration. Implemented rate limiting to prevent abuse and DDoS attacks.
The application is deployed on AWS infrastructure with the Express.js server running on EC2 instances, PostgreSQL database on RDS for managed database services, and S3 for file storage. This setup ensures high availability, automatic backups, and easy scalability as the user base grows.
Application server hosting with auto-scaling capabilities
Managed PostgreSQL database with automatic backups
Scalable file storage with CDN integration
.jpg&w=3840&q=75)
.jpg&w=3840&q=75)
This project significantly strengthened my backend development skills, particularly in building RESTful APIs with Express.js. I gained deep understanding of middleware architecture, error handling patterns, and API design best practices.
Working extensively with PostgreSQL taught me advanced SQL concepts, database optimization techniques, and the importance of proper schema design. I learned to write complex queries, use indexes effectively, and maintain data integrity.
Deploying and managing the application on AWS provided practical experience with cloud services. I learned about EC2 instance management, S3 bucket policies, RDS configuration, and security groups, preparing me for cloud-based development in professional settings.