Classroom / tutoring platform for sharing knowledge in different science topics. This project is a full-stack application built using Vite for the frontend and TypeScript-powered Express server with Prisma ORM and JWT-based authentication. Real-time communication handled by socket.io and getStream SDK.
- Vite: For fast development and optimized builds.
- React + TypeScript: The core of the frontend.
- State Management: Zustand and Context API.
- Form Management: React Hook Form and Zod for validation.
- Data Fetching: React Query and Axios.
- UI Framework: Shadcn components with Tailwind CSS.
- Routing: React Router.
- Express.js: For API routes and server-side logic.
- Prisma + SQLite: ORM for database interactions, with SQLite for local development.
- Authentication: Passport.js with JWT support.
- Classroom chat - getStream sdk
- Classroom members management
- Realtime connection - socket.io
- Authentication for users
- Classroom creation flow
- Resources sharing
- User / Community settings
- Onboarding
- Node.js and Bun installed on your machine.
-
Clone the repository:
git clone git@github.com:kj-ninja/grow-academy.git
-
Navigate to the project directory:
cd grow-academy -
Install dependencies:
bun install
-
Run the development environment:
bun run deploy
-
Visit http://localhost:4000 to see the app in action.
-
Run Prisma Migrations:
npx prisma migrate dev --name init
-
Open Prisma Studio (for managing database visually):
npx prisma studio
-
Generate Prisma Client (updates TypeScript types after schema changes):
npx prisma generate
-
Apply Schema Changes (quickly push changes during development):
npx prisma db push
-
Reset Database (clears data, applies migrations, and runs seeds):
npx prisma migrate reset
-
Validate Schema (checks if your schema file is valid):
npx prisma validate
-
Format Schema File (maintains consistent styling):
npx prisma format
-
Pull Database Schema (creates schema file from existing database):
npx prisma db pull
-
Show Migrations History (displays applied and pending migrations):
npx prisma migrate status
-
Deploy Migrations (applies migrations in production):
npx prisma migrate deploy
bun run prettier --write .To run the test suite using Jest:
bun run test