Tutor-Link is a comprehensive platform that connects students with qualified tutors, providing a seamless experience for finding, booking, and managing tutoring sessions with ease. and Users can explore available tutors, book personalized sessions, and manage their learning journey. Tutors can create professional profiles, list subjects, schedule availability, and manage bookings. As well as they can read and write blogs. Also created a Profeesional Anylyticals Dashboard Features for All User Roles. 📚✨
- User Authentication (Login/Signup, JWT Authentication)
- Role-Based Access (Admin, Tutor, Student)
- Tutor Profile Management
- Student-Tutor Matching Algorithm
- Booking System (Schedule and manage sessions)
- Real-time Email Notifications
- Secure Payment Integration (SSL Commerz)
- Review & Rating System
- Blog System
- Admin Dashboard for Managing Users & Reports
- Next.js 15
- TypeScript
- Tailwind CSS
- Shadcn/UI
- Framer Motion
- React Hook Form
- Zod Validation
- React Query (TanStack Query)
- Node.js + Express.js
- TypeScript
- MongoDB + Mongoose
- JWT Authentication
- Cloudinary for Image Uploads
- SSLCommerz for Payment Processing
- Nodemailer for Email Notifications
src/
│── app/
│── assets/
│── components/
│── hooks/
│── layouts/
│── pages/
│── services/
│── providers/
│── contexts/
│── utils/
│── types/
│── constants
│── middlewares
│── hooks
│── lib
├── backend/
│ ├── .vercel/
│ ├── dist/
│ ├── src/
│ │ ├── app/
│ | ├── builder/
│ │ ├── config/
│ │ ├── db/
│ │ ├── helpers/
│ │ ├── middlewares/
│ │ ├── errors/
│ │ ├── interface/
│ │ ├── modules/
│ │ ├── routes/
│ │ ├── types/
│ │ ├── utils/
│ │ ├── app.ts
│ ├── scripts/
│ ├── templates/
│ ├── server.ts
│ ├── package.json
│ ├── tsconfig.json
│ ├── vercel.json
-
Clone the repository:
git clone https://github.com/Shakilofficial/tutor-link.git cd backend
-
Install dependencies:
npm install
-
Create a
.env
file and add the required environment variables:NODE_ENV=development PORT=5000 # Database Configuration DB_URL="mongodb+srv://<username>:<password>@cluster.mongodb.net/<dbname>?retryWrites=true&w=majority" # Authentication Secrets JWT_ACCESS_SECRET="<your_access_secret>" JWT_REFRESH_SECRET="<your_refresh_secret>" JWT_EXPIRES_IN="7d" JWT_REFRESH_EXPIRES_IN="30d" # Bcrypt Salt Rounds BCRYPT_SALT_ROUNDS=12 # Cloudinary Configuration CLOUDINARY_CLOUD_NAME="<your_cloud_name>" CLOUDINARY_API_KEY="<your_api_key>" CLOUDINARY_API_SECRET="<your_api_secret>" # Payment Gateway Configuration STRIPE_SECRET_KEY="<your_stripe_secret_key>" # Email Configuration SMTP_HOST="smtp.example.com" SMTP_PORT=587 SMTP_USER="your-email@example.com" SMTP_PASS="your-email-password" SMTP_FROM_EMAIL="noreply@tutorlink.com"
-
Start the backend server:
npm run dev
- Navigate to the frontend folder:
cd frontend
- Install dependencies:
npm install
- Create a
.env.local
file and add the required environment variables:NEXT_PUBLIC_BASE_API=backend_url NEXT_PUBLIC_RECAPTCHA_SERVER_KEY=your_recaptcha_server_key NEXT_PUBLIC_RECAPTCHA_CLIENT_KEY=your_recaptcha_site_key
- Start the frontend application:
npm run dev
🔹 Fork the repository.
🔹 Create a new branch: git checkout -b feature-branch
.
🔹 Make your changes and commit them: git commit -m "Add new feature"
.
🔹 Push to the branch: git push origin feature-branch
.
🔹 Open a Pull Request.
📧 Email: mrshakilhossain@outlook.com
🌐 Portfolio: Visit My Portfolio
💼 LinkedIn: Connect on LinkedIn
📘 Facebook: Facebook Profile
💖 Don't forget to ⭐ this repo if you found it helpful!
Released under the MIT License © 2025 Md Shakil Hossain.