Tutorr is a marketplace-style freelancing platform that connects teachers and students, enabling them to discover, connect, and schedule sessions seamlessly.
Built with a modern monorepo architecture using Turborepo, Tutorr ensures scalability, modularity, and lightning-fast builds across multiple apps and packages.
| Layer | Tech |
|---|---|
| Framework | Next.js, Express.js |
| Database | PostgreSQL with Prisma ORM |
| Message Queue | Redis, BullMQ |
| Object Storage | Cloudinary |
| Authentication | Built from scratch |
| UI | TailwindCSS + ShadCN/UI + TypeScript |
| Monorepo Tooling | Turborepo |
| Deployment | Vercel (web), EC2 (bgsvc) , EC2(worker-cron) |
The Tutorr monorepo is organized using Turborepo, ensuring modularity and separation of concerns between different services, packages, and shared logic.
tutorr/
├── apps/
│ ├── apps/ # Next.js frontend application (main web app)
│ ├── bgsvc/ # Background services , cron jobs and delayed notification service
│ └── worker-cron/ # Worker to process bookings
│
├── packages/
│ ├── common/ # Shared types, constants, and utility functions
│ ├── db/ # Prisma ORM schema and database client
│ ├── emails/ # Email templates and transactional mail logic
│ └── <default-folder>/ # Other shared resources or internal tooling
│
├── turbo.json # Turborepo configuration
├── package.json # Root dependency and script management
├── pnpm-workspace.yaml # Defines monorepo workspace structure
└── README.md # Project documentation
Follow these steps to set up Tutorr locally on your system.
git clone https://github.com/Tiru-99/Tutorr.git
cd tutorr You need to create .env files in the following locations:
tutorr/
├── .env # Root-level environment variables
├── apps/
│ ├── .env # For frontend/backend app configurations
│
└── packages/
└── db/
└── .env # Database configuration# Env for apps/web folder
JWT_SECRET=
NEXT_PUBLIC_CLOUD_NAME=
NEXT_PUBLIC_CLOUDINARY_API_KEY=
NEXT_PUBLIC_CLOUDINARY_API_SECRET=
REDIS_HOST ="localhost"
REDIS_PORT =6379
NEXT_PUBLIC_BACKEND_URL ="http://localhost:8001"
NEXT_PUBLIC_RAZORPAY_KEY =
RAZORPAY_SECRET_KEY=
NEXT_PUBLIC_GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
RAZORPAYX_ACCOUNT_NUMBER=
RAZORPAYX_SECRET =
RAZORPAYX_KEY_ID =
# Env for root
REDIS_URL="I am using upstash redis "
REDIS_PORT =6379
RAZORPAY_KEY=
RAZORPAY_SECRET_KEY=
GMAIL_PASS =
GMAIL_USER =
REDIS_HOST ="localhost"
NODE_ENV = "development" # or production if deploying
#Env for packages/db
DATABASE_URL="enter your own url " #if using docker use docker based url
# Run this command ar root
npm install
npm run devThis project is licensed under the MIT License — see the LICENSE file for details.