Tutorific is a one-stop bi-directional platform for tutors and tutees to find each other without the hassle of a middle man. Gone are the days where tutors have to go through a tuition agency to find tutees just to find out that there is a mismatch of expectations with the allocated tutee.
Tutorific provides tutors and tutees with all the transparency and power they need to find the one that can best fulfill their academic needs, instead of relying on a hidden matching algorithm. Visit https://tutorific.herokuapp.com to try it out today!
-
Cao Wenjie (A0205344N)
Role: Backend Developer
Responsibilities: Authentication, Models, User CRUD, Profile CRUD -
Chrystal Quek Wan Qi (A0206350U)
Role: Backend Developer
Responsibilities: Tutor Listings CRUD, Tutee Listings CRUD, Chat CRUD -
Goh Siau Chiak (A0150036W)
Role: Frontend Developer
Responsibilities: Tutor Listings pages, Tutee Listings pages -
Seow Alex (A0199262U)
Role: Frontend Developer
Responsibilities: Authentication pages, Chat pages, Profile pages
This repository is a monorepo containing both the frontend and the backend in their respective folders.
- Node.js (tested on v14.17.6)
- PostgreSQL (tested on v13.4)
The following step is common for both the frontend
and backend
folder.
- Install all dependencies and setup the pre-commit hooks:
npm install
- Generate a set of VAPID keys for Push API testing:
npx web-push generate-vapid-keys
-
Populate the
.env
file (following the.env.example
file) with the generated VAPID keys. If the default user (postgres
) and password (postgres
) does exist, edit the variables in the.env
file as well. -
Create/seed the database:
npm run db:create
or
npm run db:seed
- Start the development server:
npm run dev
-
Edit the VAPID public key defined in
frontend/src/App.tsx
for push API testing. -
(Optional) Edit the proxy specified in
package.json
if a port other than 5000 is used. -
Start the development server:
ionic serve
You may also choose to run the app in production mode. Notably, the service worker (and therefore offline functionality and push notifications) only work while in production mode.
- Build the frontend and backend:
cd frontend
npm run build
cd ../backend
npm run build
- Inside the
backend
folder, start the production server:
npm start