Tutor hop is a website where UMass students can easily search for, select and contact tutors that tutor in their area. It will be designed to be a personal hub for all tutor related information. It will hold the locations and times of tutoring classes and easily allow students and tutors to organise their schedules. Tutors can also use this platform to advertise their services and manage their timetables too.
- Frontend: React 19 + Vite + TypeScript
- Backend: Express.js + TypeScript
- Database: PostgreSQL with Drizzle ORM
- UI Library: Material-UI (MUI)
- Authentication: JWT with bcrypt
Ensure you have the following installed:
- Node.js (v18 or higher recommended)
- npm (comes with Node.js)
- PostgreSQL (if you're not using supabase like us)
git clone https://github.com/ginpks/TutorHop.git
cd TutorHopnpm installCreate a .env file in the root directory with the following variables:
DATABASE_URL="..."
JWT_SECRET="..."Run the database migrations using Drizzle:
npx drizzle-kit pushBuild the frontend assets:
npm run buildThis will create an optimized production build in the dist folder.
To run the application in development mode with hot-reloading:
npm run devThe application will be available at http://localhost:3000 (or the port specified in your server configuration).
To run the application in production mode:
npm startnpm run dev- Start development server with hot-reloadingnpm start- Start production servernpm run build- Build frontend for productionnpm run format- Format code with Prettiernpm run format:check- Check code formattingnpm test- Run tests with Jest
To generate new migrations after schema changes:
npx drizzle-kit generateTo push schema changes to the database:
npx drizzle-kit pushTo open Drizzle Studio (database GUI):
npx drizzle-kit studioTutorHop/
├── drizzle/ # Database schema and migrations
├── public/ # Static assets
├── src/
│ ├── server/ # Backend Express server
│ └── client/ # Frontend React application
├── .env # Environment variables (create this)
├── package.json # Project dependencies
└── README.md # This file
If you encounter database connection errors:
- Verify PostgreSQL is running:
pg_isready - Check your
DATABASE_URLin the.envfile - Ensure the database exists and credentials are correct
If the development server fails to start due to port conflicts, check which process is using the port and either stop it or configure a different port in your server configuration.