A 4-year planning webapp for UIUC students that automatically informs users of credit count, missing prerequisites or corequisites, all in an intuitive graphical interface. \Wohoo/
- Jizheng (Daniel) He: Coordinator and architect; frontend development.
- Anant Matta: Frontend development.
- Encheng (Kevin) Xie: Backend development/data processing.
- Zihao (Edward) Huang: Backend development/server routing & database management.
backend
: Springboot-based backend.config
: Configures CORS policy for development environment.controller
: Routers that handle frontend requests.dao
: Data Access Objects that interact with the MongoDB database.model
: Data Transfer Objects, datatypes of "documents" in each table.service
: Service classes for data processing/downloading/saving and user authentication.vo
: View Objects used for frontend-backend communications.
frontend
: React-based frontend.App.tsx
: Main entry.components/PlanTable.tsx
: 4-year + proficiency planning table that supports dragging/dropping.components/SearchBar.tsx
: Responsive course searching based on subject/number/title.components/LoginForm.tsx
: Login/save/load user plans.utils/CardActions.tsx
: Reducer-based card actions for allcomponents/CourseCard
UI properties.
- Download and install JDK 17 Installer.
- Install Maven:
- If Windows, install Chocolatey:
Then install Maven by:
Set-ExecutionPolicy AllSigned Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
choco install maven
- If MacOS/Linux, install homebrew:
Then install Maven by:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install maven
- In VSCode, install extensions "Extension Pack for Java" and "Spring Boot Extension Pack."
- Set VSCode settings "Java > Jdt > Ls > Java: Home" to your java executable's directory.
- For Windows, the directoy will be something like
c:\\Program Files\\Java\\jdk-17
, make sure to use escaped backslash characters!. - For MacOS, get the directory by running
/usr/libexec/java_home -v 17
in your terminal.
- While you are in the main Java file
IplannerApplication.java
, clickF5
to run.
- Install Node.js.
- Install
yarn
vianpm
:npm install --global yarn
- Start the frontend server:
cd frontend/ yarn install yarn start
- Make sure it runs on port
3000
, or it will fail the CORS policy of the backend configuration.
Read all instructions before you start.
- Go to MongoDB's official website, select "Version 6.0.4 (current)", and download the MongoDB installer.
- Keep everything as default in the installer.
- Open MongoDB Compass (a GUI tool similar to MySQL workbench). Connect to
localhost:27017
(this should be the default connection). - If all is good you should see the database. Create a database named
iplanner
and a collection namedcourses
.
- Create
application-dev.properties
in directorybackend/src/main/resources
(i.e. the same directory asapplication.properties
). This file is.gitignore
'd from the project and contains local development environment information. - Copy-paste the following configuration into the newly created file:
spring.data.mongodb.uri = mongodb://localhost:27017/iplanner spring.data.mongodb.database = iplanner
- In VSCode, reload your Java Project by "View > Command Palette" (in Windows
Ctrl+Shift+P
), search for "Java > Clean Java Language Server Workspace", hit Enter, and click "Reload and Delete" on the bottom-right pop-up.
- Access
http://localhost:1123/api/course/load-data
and wait for magic to happen! This takes around 2 minutes since there are ~9.2k courses in total.