A comprehensive web application platform for graduate school applications, designed to help students search, filter, compare programs, and manage their application timeline with ease.
ApplyCompass is a full-stack web application developed as part of COMP3421 Web Application Design and Development course at The Hong Kong Polytechnic University. This project provides a centralized platform for students to discover and manage graduate program applications, specifically focusing on Master's programs offered by the eight major universities in Hong Kong for Fall 2026 intake.
This application serves as a practical demonstration of modern web development technologies and best practices, covering both frontend and backend development, database design, user authentication, and API integration.
- User Registration & Authentication: Secure registration and login system with session management
- Session Management: Cookie-based sessions with 30-minute inactivity timeout
- User Profiles: Comprehensive profile management with personal information and resume sections
- Program Search: Advanced search and filtering capabilities for Master's programs
- Filter Options: Filter by country, discipline, degree type, language policy, and tuition range
- Program Details: Detailed information for each program including requirements, deadlines, and fees
- Database: Pre-loaded with programs from all 8 major Hong Kong universities
- Application Checklist: Track application deadlines and status for multiple programs
- Status Tracking: Monitor application progress (not-started, in-progress, completed)
- Program Comparison: Compare multiple programs side-by-side
- Resume Builder: Manage six resume sections (Score, Language, Honor, Project, Experience, Skill)
- Personal Information: Store and manage personal details, education background, and avatar
- Profile Scoring: Automatic profile score calculation based on resume completeness
The application includes programs from all 8 major universities in Hong Kong:
- The University of Hong Kong (HKU)
- The Chinese University of Hong Kong (CUHK)
- The Hong Kong University of Science and Technology (HKUST)
- The Hong Kong Polytechnic University (PolyU)
- City University of Hong Kong (CityU)
- Hong Kong Baptist University (HKBU)
- Lingnan University
- The Education University of Hong Kong (EdUHK)
- Framework: Vue 3 with Composition API
- Routing: Vue Router
- State Management: Vuex
- Build Tool: Vite
- Styling: CSS3 with CSS Variables
- Language: TypeScript/JavaScript
- Framework: Flask (Python)
- Database: MySQL 9.5
- Authentication: JWT tokens with Cookie-based sessions
- Password Security: bcrypt for password hashing
- CORS: Enabled for cross-origin requests
- File Upload: Support for avatar image uploads
- RDBMS: MySQL 9.5
- Tables: Users, Personal Info, Resume Sections, Programs, Checklist, Compare List, Sessions
ApplyCompass/
βββ Back_end/ # Backend API server
β βββ app.py # Flask application and API endpoints
β βββ init_db.py # Database initialization script
β βββ import_programs.py # Program data import script
β βββ requirements.txt # Python dependencies
β βββ README.md # Backend documentation
β
βββ Front_end/ # Frontend Vue application
β βββ src/
β β βββ components/ # Vue components
β β β βββ views/ # Page components
β β β βββ router/ # Vue Router configuration
β β β βββ store/ # Vuex store
β β βββ assets/ # CSS and static assets
β β βββ main.js # Application entry point
β βββ package.json # Node.js dependencies
β βββ README.md # Frontend documentation
β
βββ README.md # This file
- Python 3.7+
- Node.js 16+ and npm
- MySQL 9.5
- pip (Python package manager)
git clone https://github.com/JerryKongzzZ/ApplyCompass
cd ApplyCompasscd Back_end
# Install Python dependencies
pip install -r requirements.txt
# Initialize database (creates tables and imports sample programs)
python init_db.py
# Start the API server
python app.pyThe backend server will start at http://localhost:5000
cd Front_end
# Install Node.js dependencies
npm install
# Start the development server
npm run devThe frontend application will start at http://localhost:5173 (or the port shown in terminal)
Default database configuration (can be modified in init_db.py and app.py):
- Host:
localhost - Port:
3306 - User:
root - Password:
- Database:
Complete API documentation is available in Front_end/COMPLETE_API_DESIGN.md. The API includes:
- Authentication:
/auth/register,/auth/login,/auth/logout - User Profile:
/users/:userid/profile - Resume Management:
/users/:userid/resume - Program Search:
/programs,/programs/:id - Checklist:
/users/:userid/checklist - Compare:
/users/:userid/compare
- Password Hashing: bcrypt for secure password storage
- Session Management: HttpOnly cookies with automatic expiration
- JWT Tokens: Token-based authentication (backward compatible)
- Route Guards: Protected routes requiring authentication
- CORS Configuration: Secure cross-origin request handling
The application uses the following main tables:
users: User accounts and credentialspersonal_info: User personal informationresume_sections: Resume data in JSON formatprograms: Master's program informationchecklist: User application checklist itemscompare_list: Programs for comparisonsessions: Active user sessions
- Course: COMP3421 Web Application Design and Development
- Institution: The Hong Kong Polytechnic University
- Academic Level: Year 4 (Final Year)
- Project Type: Full-stack Web Application
This project was developed by KONG Zirui (22103493D, For Front-end) and LIU Yuyang (22100394D, For Backend) who enrolled in COMP3421 at The Hong Kong Polytechnic University.
- Real-time search across program names and institutions
- Multi-criteria filtering (country, discipline, degree type, language, tuition)
- Pagination support for large result sets
- Responsive design for mobile and desktop
- Add programs to personal checklist
- Track application deadlines
- Update application status
- Visual indicators for overdue deadlines
- Comprehensive resume builder with 6 categories
- Status indicators (Good/Medium/Poor) for each category
- Automatic profile score calculation
- Avatar upload and management
- Pre-loaded with 20+ Master's programs from Hong Kong universities
- Includes program details, requirements, deadlines, and fees
- Data can be updated via
import_programs.pyscript
- Secure storage of user credentials
- Personal information management
- Resume data stored in JSON format for flexibility
- Comprehensive error handling on both frontend and backend
- User-friendly error messages
- Graceful fallbacks for failed API requests
- Input validation on all forms
The application is fully responsive and works seamlessly on:
- Desktop computers
- Tablets
- Mobile devices
Potential improvements for future development:
- Email notifications for application deadlines
- PDF resume export functionality
- Advanced analytics and statistics
- Integration with university application portals
- Multi-language support
This project is developed for educational purposes as part of COMP3421 course requirements.
- The Hong Kong Polytechnic University - COMP3421 Course
- All 8 major universities in Hong Kong for providing program information
- Vue.js and Flask communities for excellent documentation
For questions or issues related to this project, please refer to the course instructor or teaching assistants.
Note: This application is developed for educational purposes. For actual graduate program applications, please refer to the official websites of the respective universities for the most up-to-date information.