AI-powered school management app for students and teachers.
This app lets students upload a course syllabus and have it automatically parsed into a structured course with assignments, due dates, grading weights, office hours, and other important course information. Teachers can publish courses with a join code, and students can enroll to have course information added to their semester dashboard.
- AI-powered syllabus ingestion through PDF upload or pasted text
- Semester dashboard with calendar and weekly views
- Course view with grade tracking
- Assignment/activity tracker with due dates, grading weights, status, hours logged, and grades
- GPA tracker using both 4.0 and 12.0 scales
- Reminder settings through email or WhatsApp
- Teacher course publishing with join codes
- Student enrollment flow
| Layer | Technology |
|---|---|
| Frontend | HTML, CSS, JavaScript |
| Backend | Node.js |
| Database | PostgreSQL |
| Auth | To be implemented |
| AI / LLM | To be implemented |
| Reminders | Email / WhatsApp, planned feature |
| Hosting | Local development for Milestone 02 |
To view the front-end, you only need one of:
- Python 3 — preinstalled on macOS/Linux (recommended, nothing to install), or
- Node.js + npm — if you prefer the
npx serveoption below
Plus Git to clone the repo. (Node.js and PostgreSQL are only needed for the optional back-end/database, which are still in progress.)
Both servers must be running, on these exact ports:
| Part | Port |
|---|---|
| Front-end | 3000 |
| Back-end | 5000 |
Changing either port breaks the app.
- Node.js 18+ and npm
That's all — the database is hosted, so there's nothing to install or create.
git clone https://github.com/kruugerr/cp476-project.git
cd cp476-projectThe app needs backend/.env, which holds the database credentials, JWT
secret, and Claude API key. It is not in this repository — it has been submitted
separately alongside the project.
Copy the provided .env file into the backend/ folder:
cp476-project/
└── backend/
└── .env <- (place it here)
The back-end will not start without it.
cd backend
npm installThe front-end has no dependencies and needs no install step.
Open two terminals, both from the project root.
Terminal 1 — back-end API (port 5000):
cd backend
npm run devWait for Database connection successful. and
Server running on http://localhost:5000. If the database line doesn't
appear, check that .env is in the right place.
Terminal 2 — front-end (port 3000):
npx serve frontend -l 3000Then open http://localhost:3000
cp476-project/
├── docs/ # planning docs, meeting minutes, activity blog/wiki
├── frontend/ # front-end files
├── backend/ # back-end server files
└── README.md
The activity blog/wiki is maintained in the project documentation and includes weekly meeting notes, task assignments, progress updates, design decisions, blockers, and resolutions.
| Name | Contribution Summary |
|---|---|
| Zach Gould | Worked on project setup, GitHub repository organization, and development tasks. |
| Zohra Haidary | Worked on planning documentation, front-end/design tasks, and project organization. |
| Tyler Rizzi | Worked on back-end setup, README updates, and project documentation. |
| Thanh Phan | Worked on development tasks, milestone planning, and implementation support. |
| Qichen Hao | Worked on planning, project documentation, and implementation support. |
CP476 — Internet Computing Wilfrid Laurier University