yarn
is the recommended js package manager for this project. After installingyarn
on your machine, follow the steps below.- In your terminal, enter
yarn
to install all necessary dependencies addressed inpackage.json
- If there is any new react or js library you want to add, just enter
yarn add <package name>
- To start running the frontend of the application, enter
yarn start
, and this should launch a new window in your browser at the addresshttp://localhost:8887
- We use
flask
for managing the server-side processing of the application. Currently the master web service is configured to run onhttp://127.0.0.1:5000
. However, you can modify the main method insideserver/app.py
to start the service on a different host / port. - To start the service, simply run the
server/app.py
. - Please note that when you modified the host and port on the server side, you need also update the base url configuration in
src/api/api.js
so that any incoming requests from the React side are hitting the correct endpoints.
- We use MongoDB for data storage. The database for this project comprises of a series of collections off 2 different databases (
dev
, andprod
) of a Mongo Atlas Cluster. It is important to note that to avoid excessive setup networking calls through the Pymongo client, a wrapper singleton class insideserver/database/routes.py
has been added to provide access (and creation) of databases. If you want to access the database, please import thedb
singleton object from the file instead of creating new ones. If you want to create a new database off the collection, just add a new property toserver/database/routes.py
.
Current Progress:
- Initiatlized Flask Backend
- Added Google OAuth2 Login/Logout Support
- Link Flask Backend with React Frontend
- Initial React Frontend for Home Page
- Complete Authentication and Registration Workflow
- Form Creation and Persistence
- Form Auto Generation from Template and Dynamic Routing
- Dynamic Visualization of Form Submission Results
- Authentication for Students Accessing Form
- Initial Design for Roster Import & Search Page
- Initial Design for Matching Algorithm