TutorApp is a comprehensive tutoring platform that connects students with qualified local tutors, similar to how Uber connects riders with drivers. Students can find, book, and pay for tutoring sessions while tutors can register, set their rates, and manage their availability.
- Browse & Search Tutors: Find tutors by subject, university, rating, and price
- Instant Booking: Book sessions immediately or schedule for later
- Secure Payments: Integrated payment processing with Stripe
- Reviews & Ratings: Leave reviews and see tutor ratings
- Real-time Messaging: Chat with tutors before and during sessions
- Session Dashboard: Track upcoming and past sessions
- Profile Management: Create detailed profiles with subjects, rates, and availability
- Verification System: Get verified to build trust with students
- Earnings Tracking: Monitor earnings and session history
- Flexible Scheduling: Set availability and accept/decline bookings
- Student Communication: Message students and manage session details
- Responsive Design: Works seamlessly on desktop and mobile
- Real-time Updates: Live notifications and status updates
- Advanced Search: Filter by subject, price, rating, and availability
- Secure Authentication: User registration and login system
- Payment Processing: Secure payment handling with refund support
- Frontend: Next.js 15 with TypeScript
- Styling: Tailwind CSS
- Database: PostgreSQL with Prisma ORM
- Authentication: NextAuth.js
- Payments: Stripe
- Real-time: Socket.io
- Deployment: Vercel (recommended)
tutorapp/
├── src/
│ ├── app/ # Next.js App Router pages
│ │ ├── api/ # API routes
│ │ ├── become-tutor/ # Tutor registration page
│ │ ├── dashboard/ # User dashboard
│ │ ├── find-tutors/ # Tutor search page
│ │ ├── login/ # Login page
│ │ ├── signup/ # Registration page
│ │ ├── layout.tsx # Root layout
│ │ └── page.tsx # Home page
│ ├── components/ # Reusable React components
│ │ ├── Header.tsx # Navigation header
│ │ └── TutorCard.tsx # Tutor display card
│ ├── lib/ # Utility functions
│ └── types/ # TypeScript type definitions
├── prisma/
│ └── schema.prisma # Database schema
├── public/ # Static assets
└── .github/
└── copilot-instructions.md # Development guidelines
- Node.js 18+
- npm or yarn
- PostgreSQL database
-
Clone the repository
git clone <your-repo-url> cd tutorapp
-
Install dependencies
npm install
-
Set up environment variables Create a
.env.localfile in the root directory:DATABASE_URL="postgresql://username:password@localhost:5432/tutorapp" NEXTAUTH_SECRET="your-nextauth-secret" NEXTAUTH_URL="http://localhost:3000" STRIPE_SECRET_KEY="sk_test_..." STRIPE_PUBLISHABLE_KEY="pk_test_..." NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY="pk_test_..."
-
Set up the database
npx prisma migrate dev --name init npx prisma generate
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
The app uses a comprehensive database schema with the following main entities:
- Users: Core user information for both students and tutors
- StudentProfile: Extended student information
- TutorProfile: Tutor-specific data including subjects, rates, and verification status
- Bookings: Session bookings with status tracking
- Reviews: Rating and review system
- Messages: Real-time messaging between users
- Payments: Payment processing and history
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLint
# Database operations
npx prisma migrate dev # Create and apply migrations
npx prisma generate # Generate Prisma client
npx prisma studio # Open database browser
npx prisma db seed # Seed database with sample data
# Development
npm run dev # Start dev server with hot reload
npm run build # Build for production
npm run type-check # Check TypeScript types-
Push to GitHub
git add . git commit -m "Initial commit" git push origin main
-
Deploy on Vercel
- Connect your GitHub repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically on push
-
Set up database
- Use Vercel Postgres or external PostgreSQL provider
- Run migrations in production
- Basic user registration and authentication
- Tutor profile creation and search
- Simple booking system
- Review and rating system
- Real-time messaging system
- Payment integration with Stripe
- Advanced search and filtering
- Mobile app development
- Video calling integration
- AI-powered tutor matching
- Advanced analytics dashboard
- Multi-language support
We welcome contributions! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
For support, email support@tutorapp.com or join our Discord server.
- Next.js for the amazing React framework
- Tailwind CSS for the utility-first CSS framework
- Prisma for the excellent database toolkit
- Stripe for payment processing