A modern, feature-rich Flask web application designed to help students and job seekers organize, track, and optimize their internship search journey. Built by students, for students! π
β οΈ Copyright Notice: This project is the original work of DEN and is protected under Apache 2.0 License. While the code is open source for educational purposes, please respect the license terms and provide proper attribution if you use any part of this codebase.
π¬ Watch the Project Presentation
- Secure user registration and login system
- Password hashing with Werkzeug security
- Session management with Flask-Login
- Email-Based Password Reset: Secure forgot password functionality with token-based verification
- Password change functionality with strength validation
- Smart Application Management: Track internship applications with detailed status updates
- Advanced Status System: Applied, Interviewing, Offered, Rejected, Accepted, Withdrawn, Waitlist
- Next Action Tracking: Set and track follow-up actions with dates
- Contact Management: Store recruiter and company contacts as structured data
- Rich Notes System: Add detailed notes with auto-save functionality
- Complete User Profiles: Personal information, education details, bio
- Profile Pictures: Upload custom profile pictures with fallback to initials
- Social Media Integration: Connect up to 6 social media accounts (14 platforms supported)
- Major Selection: Choose from 200+ academic majors with Select2 integration
- Privacy Controls: Manage profile visibility and data sharing
- Tabbed Settings Interface: User settings and app preferences
- Theme Customization: Light, dark, and auto themes
- Notification Preferences: Email, reminders, and social notifications
- Data Export: Export applications in CSV/Excel format
- Timezone Support: Multiple timezone options
- Responsive Design: Works on desktop, tablet, and mobile
- Glass Morphism: Modern glass-effect UI components
- Dynamic Navigation: Smart back button with navigation stack
- Interactive Elements: Hover effects, animations, and transitions
- Font Awesome Icons: 6000+ icons for better visual experience
- Comprehensive Application View: All details in one place
- Status Badges: Color-coded status indicators
- Description Modal: Popup modal for detailed job descriptions
- Contact Cards: Organized contact information display
- Interactive Elements: Click-to-edit notes and details
- Backend: Flask 2.3+, SQLAlchemy, Flask-Login
- Frontend: HTML5, CSS3, JavaScript (ES6+)
- Database: SQLite with JSON fields for complex data
- Libraries:
- Select2 for enhanced dropdowns
- Font Awesome for icons
- Pandas for data export (optional)
- Security: Werkzeug password hashing, CSRF protection
- Python 3.8 or higher
- pip package manager
-
Clone the repository
git clone https://github.com/YOUR_USERNAME/internship-tracker.git cd internship-tracker
-
Create and activate virtual environment
# Windows python -m venv venv venv\Scripts\activate # macOS/Linux python3 -m venv venv source venv/bin/activate
-
Install dependencies
pip install -r requirements.txt
-
Run the application
python run.py
-
Open your browser Navigate to
http://127.0.0.1:5000
For faster setup, use the provided scripts:
Windows:
setup.bat
macOS/Linux:
chmod +x setup.sh
./setup.sh
internship-tracker/
β
βββ app/ # Main application package
β βββ __init__.py # App factory and configuration
β βββ models.py # Database models (User, Internship, Settings)
β β
β βββ auth/ # Authentication blueprint
β β βββ __init__.py
β β βββ routes.py # Login, register, logout routes
β β
β βββ applications/ # Application management
β β βββ __init__.py
β β βββ routes.py # CRUD operations for applications
β β
β βββ profile/ # User profile management
β β βββ __init__.py
β β βββ routes.py # Profile viewing and editing
β β
β βββ settings/ # Settings management
β β βββ __init__.py
β β βββ routes.py # User and app settings
β β
β βββ templates/ # Jinja2 templates
β β βββ layout.html # Base template
β β βββ landing.html # Landing page
β β βββ home.html # Dashboard
β β βββ applications.html # Applications list
β β βββ application-details.html
β β βββ profile.html
β β βββ settings.html
β β βββ ...
β β
β βββ static/ # Static assets
β βββ css/ # Stylesheets
β β βββ layout.css # Base styles
β β βββ applications.css
β β βββ profile.css
β β βββ ...
β βββ js/ # JavaScript files
β β βββ applications.js
β β βββ settings.js
β β βββ nav.js
β β βββ majors.json # Academic majors data
β βββ uploads/ # User uploaded files
β βββ profile_pictures/
β
βββ instance/ # Instance-specific files
β βββ internships.db # SQLite database
β
βββ run.py # Application entry point
βββ requirements.txt # Python dependencies
βββ .gitignore # Git ignore rules
βββ LICENSE # Apache 2.0 license
βββ README.md # This file
- Personal information (name, email, phone)
- Education details (school, major, graduation year)
- Profile customization (bio, profile picture)
- Social media links (up to 6 platforms)
- Privacy and notification settings
- Application details (company, position, status)
- Dates (applied, next action due)
- Contact information (JSON field)
- Notes and descriptions
- Status tracking with 7 different states
- Theme preferences
- Notification settings
- Privacy controls
- Data export preferences
- Modern hero section with animated statistics
- Feature highlights with icons
- Call-to-action buttons
- Responsive navigation
- List View: Grid layout with status indicators
- Detail View: Comprehensive application information
- Add/Edit Forms: Dynamic forms with validation
- Search & Filter: Find applications quickly
- Profile Display: Clean, card-based layout
- Social Links: Dynamic social media integration
- Edit Mode: In-place editing with form validation
- Profile Pictures: Upload with preview and fallback
- Tabbed Interface: User settings and app preferences
- Form Validation: Real-time validation feedback
- AJAX Updates: Smooth, no-reload updates
- Data Export: One-click export functionality
- Password Security: Werkzeug hashing with salt
- Email-Based Password Reset: Secure token-based password reset with expiration
- Input Validation: Server-side validation for all forms
- File Upload Security: Secure file handling for profile pictures
- Session Management: Secure session handling with Flask-Login
- CSRF Protection: Built-in protection against cross-site attacks
InternIn is fully responsive and works seamlessly across:
- Desktop: Full-featured experience
- Tablet: Optimized layouts for medium screens
- Mobile: Touch-friendly interface with mobile navigation
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
InternIn was built by students, for students. Special thanks to:
- Flask Community for the excellent web framework
- Font Awesome for the comprehensive icon library
If you have questions or need help: Contact me(daniel.anorue@usm.edu), elyon (elyon.aganah@usm.edu) or neville(neville.onsomu@usm.edu)
Built with β€οΈ by students, for students
A DEN Special β’
β Star this repo if you found it helpful!