A simple Java based program that provides users with the ability to search for and get recommendations on their dream university!
This project was developed by Students at the University of Toronto. It leverages the U.S. Departement of Education's College Scorecard API to provide accurate data on a large variety of American post-secondary education institutions.
Description of the Problem Domain:
Finding the right post-secondary institution for you can be challenging, there are just so many to choose from! It is one of the most life defining decisions to be made, so it is important to get it right.
We hope to help our users narrow down their decisions, while being able to explore a wide variety of different institutions. To accomplish this, our application allows users to search a vast catalogue post-secondary institutions (currently only in The United States) based on parameters such as instituional name, or distance from a given zip-code. Users can also recieve recommendations on potential universities to consider based on their academic standing (SAT/ACT score). For more personalised recommendations, users can create their own account and profile, which will take in to account a variety of factors such as desired post-graduation salaries.
The project was developed following the Clean Architecture framework/engine. SOLID principles were always kept in mind, and design patterns such as Dependency Inversion, Factories, and Strategy were used throughout the project. All this means that extending our project in the future is easy and naturally accommodated by the modularity of the program (maybe you should give it a try).
Program Usage Instructions:
- Download the source code of our project (be sure to extract it)!
- Open our project in a JAVA IDE of your choice (using JDK of versiom 20+ is recommended).
- Be sure to set the java folder/directory as the sources root.
Your directory should look similar to this:
- Run the Main.java file.
- Viola, you should see the main menu pop up!
For advanced users, feel free to compile all the java files yourself, and simply run the main file.
Break down of how our project works:
- Who is this for:
- Users of our program are students looking to browse universities. They can search for post-secondary instituions in the United States based on their preferences and get recommendations based on their inputed information.
- University search:
- This will allow users to search for universities in our institution database.
- Recommendation system:
- Based on the information provided by the user (in particular, SAT/ACT scores), provide recommendations of best fitting institutions.
- Zip-code Search:
- Convienient for finding insitutions close to home. Provide a zip code and find institutions within a set radius.
- Login/Account system:
- This allows users to signup/create an account.
- It allows users to login using their credentials (a username and a password).
- Allows users to save their preferences/info into a profile, so that they can enter their information just one time, and recieve more tailored recommendations.
- All user related data is stored on our server via our own API.
- Databases:
- Database of users.
- Database of user profiles.
- Database of education institutions (see College Scorecard API).
- APIs
- College Scorecard API: https://collegescorecard.ed.gov/data/documentation/
- Our own custom API developed by Henry to handle traffic to our server: https://github.com/LatinScribe/Custom-Server-API
API Documentation:
- Full API Documentation pdf
- Privdes Institution-level data files for 1996-97 through 2021-22 containing aggregate data for each institution. Includes information on institutional characteristics, enrollment, student aid, costs, and student outcomes.
- Initiative of the U.S. Department of Education.
- Accurate verified data.
- See the full documentations on the github page.
- Python based flask application that serves as the middle ware to handle HTTP requests to our server for data storage and retrieval.
- Implements a MySQL database.
- Developed by Henry to provide better data persistence thoughout our program.
Link to our project UML: Google Drawing
Henry "TJ" Chen, Andre Lin, Diego Pachas Ramos, Kanish Sharma, Bora Celebi

