← Back to Projects
💼

Internify

Internship Tracking System for IT Undergraduates

Backend DeveloperDatabase Designer

Project Overview

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.

Key Features

Internship Discovery

Browse and search for internship opportunities specifically curated for IT undergraduates with advanced filtering options.

Application Tracking

Track all internship applications in one place, monitoring their status from submission to final decision.

CV Management

Create, update, and manage multiple versions of CVs for different types of internship applications.

Company Profiles

Detailed company information, culture insights, and past internship experiences shared by other students.

Deadline Reminders

Never miss an application deadline with automated email reminders and calendar integration.

Analytics Dashboard

Visualize application statistics, success rates, and internship market trends for IT students.

System Architecture

RESTful API Server

Express.js server handling all business logic, authentication, and data validation with proper error handling and logging.

PostgreSQL Database

Relational database storing user profiles, internship listings, applications, and CV metadata with optimized schema design.

AWS S3 Integration

Secure cloud storage for CV files with pre-signed URLs for download, ensuring data privacy and scalability.

Authentication System

JWT-based authentication with refresh tokens, password hashing using bcrypt, and role-based access control.

Technology Stack

Backend

Express.jsNode.jsJavaScriptRESTful APIsJWT Authentication

Database

PostgreSQLSQLDatabase DesignQuery Optimization

Cloud Services

AWS S3 (File Storage)AWS EC2 (Deployment)AWS RDS (Database)

Tools & Libraries

Passport.jsMulterNodemailerbcryptdotenv

Technical Implementation Highlights

Database Design

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.

  • Normalized database schema (3NF)
  • Efficient indexing for search queries
  • Complex joins for analytics and reporting

File Upload & Storage

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.

  • Secure file upload with validation
  • AWS S3 integration for scalable storage
  • Pre-signed URLs for secure file access

Security Implementation

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.

  • JWT-based authentication with refresh tokens
  • Password hashing using bcrypt
  • Input validation and sanitization
  • Rate limiting and CORS protection

Deployment & Infrastructure

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.

AWS EC2

Application server hosting with auto-scaling capabilities

AWS RDS

Managed PostgreSQL database with automatic backups

AWS S3

Scalable file storage with CDN integration

Screenshots

Application Screenshots

Internify Screenshot 1
Internify Screenshot 2

Project Impact & Learning Outcomes

Backend Development Mastery

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.

Database Expertise

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.

AWS Cloud Services

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.