Fine-Grained Intelligent Grad-School Application Planning Website - "Offer Master"


Visit at:


Our vision for this project is to provide a comprehensive platform that simplifies prospective students’ graduate school application process. The domain of the project is the assistance of master applicants. Our intended application is a web-based platform that offers a University Database module, an essay refinement tool, a GPA converter, a recommendation system, and an application community module.

Overall, we aim to create a user-friendly platform that simplifies the graduate school application process, provides valuable tools and resources to applicants, and fosters a supportive community for potential master applicants. This project is worth doing because it addresses a real need and has the potential to improve the lives of many individuals seeking to pursue their tertiary education.

Main features

  • Program and University Recommendation: Our website mainly focuses on helping applicants decide on schools and programs that best fit their backgrounds. Users can select their desired programs manually or access the programs recommended by our system. For a specific program selected by a user, the success rate of their admission will be analyzed.
  • Database of Universities: As our website aims at recommending schools and programs for our applicants, we also provide a database of universities. This database has several responsibilities. Firstly, the data will be used to train our recommendation models. Moreover, users can search and browse the data of schools and programs. Furthermore, users may leave comments for each program and select them into their own “program list”. The relevant data will be mainly collected in two ways. First, some open-source admission data and program information will be found on GitHub and Kaggle. Apart from that, our users can upload their own admission status and application backgrounds to expand our database.
  • Applicant Background System: We will provide a background system for our users (applicants) to support our recommendation system. Users can update their application backgrounds in this system, including their GPA, undergraduate school, language proficiency, and GRE score. Therefore, according to their uploaded background, our recommendation system is able to recommend appropriate schools and programs.
  • Applicants Community: To help our users to apply, an application community is also provided where our users can have a discussion with other applicants on topics of universities, programs, offers, etc. Moreover, they can post their admission information and check the offer timelines of recent years in this platform.

Adopted Technologies

  • Machine Learning: Our website focuses on the functionality of a recommendation system, which aims to simplify the application process by recommending suitable programs based on the applicants’ interests and backgrounds.
    • KNN: One of the main reasons we adopt the KNN algorithm is that the training of KNN models is fast and it is easy to expand our training set. Specifically, after our users upload their backgrounds and application decisions, the recommendation model can be trained again using the updated dataset.
    • Collaborative Filtering (CF): CF is an approach for making predictions about the preferences of a user by collecting information from many other users. On our website, CF will be applied to help each applicant to choose prospective programs. For example, if Bob and Alice have a similar profile and Bob plan to apply for the “Master of Science in Computer Science (MSCS)” and “Master of Science in Electrical and Computer Engineering (MSECE)” of Carnegie Mellon University, and Alice plan to apply for the MSCS program, then we will recommend the MSECE program to Alice.
  • Back-end
    • SpringBoot3: SpringBoot3 provides us with more flexible configuration, faster development, better scalability, and easy integration testing.
    • OAuth2: OAuth2 opens up inter-system authorization and improves the security of the service. Token-based authorization allows websites to gain access to user data without exposing user information.
    • Jwt: Jwt is based on JSON, which is easy to parse and can be customized with rich contents in the token and easy to expand. With asymmetric encryption and digital signature technology, tampering can be prevented and security is high. Authorization can be done without relying on authentication services.
    • Swagger: Swagger can help developers design, develop, and test API faster and easier.
    • JPA: JPA uses object-oriented design to simplify our development difficulties, while JPA encapsulates the regular query operations, and provides easier transaction control and processing. And has a high degree of portability, while supporting MySQL, SQLite and other databases.
  • Front-end
    • Vue3: Vue3 is optimized for speed and is easier for developers to develop and easier to maintain.
    • Axios: Axios is an encapsulation of XHR based on Promise that conforms to the latest ES specification, providing more security and encapsulating the interface for concurrent requests to make it easier for developers to use.
    • Bootstrap5: Bootstrap5 reduces the space footprint of CSS files compared to previous versions and optimizes styles and forms based on HTML5.
    • Echarts & HighCharts: Echarts and HighCharts provide data visualization support, making the presentation of data more intuitive in certain situations.
    • Tinymce: Tinymce is a lightweight rich text editor with very fast loading speed and flexible feature configuration to reduce client-side stress.
  • Database
    • SQLite: SQLite is chosen for the local development environment because it is lighter and simplifies database configuration and data synchronization for the development environment.
    • MySQL: The file I/O performance of the UCD server is poor, so we choose MySQL as the database to improve the query efficiency by using its caching function. MySQL queries on UCD servers are about 200\% more efficient than SQLite.
  • Deployment
    • Docker (docker-compose)
    • CI/CD Pipeline

Overall System Structure

  • Ingress Gateway

    • Nginx (Version 1.20.2)
      • Requests to “/” will be send to ⇒ User Portal
      • Requests to “/admin” will be send to ⇒ Administration Portal
      • Requests to “/backend” will be send to ⇒ API Server
      • Requests to “/springboot-admin” will be send to ⇒ SpringBoot-Admin Service
      • Requests to “/portainer” will be send to ⇒ Portainer
      • Requests to “/phpmyadmin” will be send to ⇒ phpMyAdmin
  • Front-End

    • User Portal (Vue.js - Version 3)
    • Administration Portal (Vue.js - Version 2)
  • Back-End

    • API Server (SpringBoot 3)
    • MySQL Database Server (Version 8.0)
  • Monitoring Systems

    • SpringBoot-Admin (Monitoring SpringBoot Service)
    • phpMyAdmin (Monitoring MySQL Service)
    • Portainer (Monitoring Docker Service)



Back to top ↑