CSCI 455 - Scholar Seek
College: New York Institute of Technology
Course: CSCI 455 - M01/ Spring 2021
Project Page: here
Mentor: Dr. Li
Team Lead: Micheal Trzaskoma
Team Member: Hui (Henry) Chen, Jungi Park, Micheal Trzaskoma, Zakaria Khan, and Gregory Salvesen
This Scholar Seek project is a continuation of a project from CSCI426 (Information Retrieval). The continuation of this project will include the implementation of more robust features and an enhanced database, which will distinguish this project from its previous state. The new planned features will also expand the scope of the app. The project, in its state from CSCI426, serves as a scholarship recommendation service, using a user’s profile information to match them as best as possible with scholarships from scholarships.com. With the features planned for development in CSCI426, the app will also serve to help prospective college students find the higher education institution that best suits them and it will even help them explore potential majors. Our Scholar Seek will help students who are financially struggling find the best scholarship, explore potential majors, and find the college best suited for them by using their profile information to recommend likely candidates.
- backend - all necessary files for the backend and cloud (AWS)
- frontend - all necessary files for the React Native
- db - all databases needed for the project
- scholarDirectory - categorical scholarship term
- scholarships - detailed scholarships
- subcatList - a list of scholarship sub-category
- auth - user profile data
- colleges - college data from niche.com
- client_profile - user's profile db
- majors - categorized major listing db
-
backend:
Create a virtual env (if you have not):
cd backend source env/bin/activate pip install -r requirements.txt
Production Env with Docker:
# build a container docker-compose build # view the container info (get container ID) docker-compose images # run the docker in port 8080 docker run -p 8080:8080 -it <container ID>
- Access the URL: localhost:8080
Development Env:
cd backend export FLASK_APP=run.py export FLASK_ENV=development python run.py
- Access the URL: localhost:8080
Test Env with Ngrok
cd <ngrok directory> ./ngrok http 8080
-
frontend:
cd frontend npm install expo start
Endpoint | Method(s) | Description |
---|---|---|
/api/v1.2/resources/scholarships/view/categories/general | GET | View a list of scholarship general category terms. E.g. Acamdeic Major, Age, Gendder, and etc. |
/api/v1.2/resources/scholarships/view/categories/<cater> | GET | View a list of scholarship sub-category terms. E.g. Acamdeic Major has Accounting, Computer Science, and etc. |
/api/v1.2/resources/scholarships/view/categories/sub/<cater> | GET | View a list of scholarship that belongs to a specific sub-categories. |
/api/v1.2/resources/scholarships/view/titles/<scholarship_title>/<email>/<token>/<id> | GET | View a scholarship detail by providing scholarship name. At the same time, the backend automatically add this item as recent viewed. |
Endpoint | Method(s) | Description |
---|---|---|
/api/v1.2/resources/college/view/states/<state> | GET | View all colleges under a specific state. |
/api/v1.2/resources/college/view/titles/<college_name>/<email>/<token>/<id> | GET | View a college detail by providing college name. At the same time, the backend automatically add this item as recent viewed. |
Endpoint | Method(s) | Description |
---|---|---|
/api/v1.2/resources/major/view/subjects/<sub> | GET | View all majors under a specific subjects. |
/api/v1.2/resources/majors/view/titles/<major_name>/<email>/<token>/<id> | GET | View a major detail by providing major name. At the same time, the backend automatically add this item as recent viewed. |
Endpoint | Method(s) | Description |
---|---|---|
/api/v1.2/users/id/<email>/<token>/<id>/recommends/scholarship | GET | View a list of recommended scholarships by providing client's email. |
/api/v1.2/users/id/<email>/<token>/<id>/recommends/college | GET | View a list of recommended college by providing client's email. |
/api/v1.2/users/id/<email>/<token>/<id>/recommends/major | GET | View a list of recommended major by providing client's email. |
Endpoint | Method(s) | Description |
---|---|---|
/api/v1.2/managements/users/signup | GET | Allows the user end to sign up an account. |
/api/v1.2/managements/users/thankyou | GET, POST | Validate the user's token when sign up an account. |
/api/v1.2/managements/users/<email> | GET | Authenticate the user's device and account by using email address, account password, and UUID, then return a JWT code as a token. |
/api/v1.2/managements/users/forgotpassword | GET | Allows the users to reset their password. Accessible by the project internally only. |
Endpoint | Method(s) | Description |
---|---|---|
/api/v1.2/users/id/<email>/<token>/<id>/surveys/scholarship | GET, POST, PATCH | Retrieve, Append, and modify client's scholarship survey detail into db. |
/api/v1.2/users/id/<email>/<token>/<id>/surveys/college | GET, POST, PATCH | Retrieve, Append, and modify client's college survey detail into db. |
/api/v1.2/users/id/<email>/<token>/<id>/surveys/major | GET, POST, PATCH | Retrieve, Append, and modify client's major survey detail into db. |
Endpoint | Method(s) | Description |
---|---|---|
/api/v1.2/users/id/<email>/bookmarks/<type>/<token>/<id> /bookmarks | GET, POST, DELETE | View, append, and delete bookmark item under user's profile. |
Endpoint | Method(s) | Description |
---|---|---|
/api/v1.2/users/id/<email>/<token>/<id>/recent/<type>/<doc_num> | GET | View history item under user's profile. |