Skip to content

Repository files navigation

TutorLink 🎓

TutorLink is a full-stack tutoring platform that connects students with tutors.
The platform allows students to find tutors, schedule tutoring sessions, communicate through messages, and manage their learning experience.

This project was developed as a portfolio project using modern web development technologies.


🚀 Features

🔐 Authentication

  • User registration and login
  • Session-based authentication
  • Role-based access control
  • Three user roles:
    • Student
    • Tutor
    • Admin

👨‍🎓 Student Features

  • Search available tutors
  • View tutor profiles
  • Request tutoring sessions
  • Manage bookings
  • Communicate with tutors
  • Receive email notifications
  • View meeting instructions

👨‍🏫 Tutor Features

  • Create tutor profile
  • Add tutoring information
  • Manage availability
  • Receive student booking requests
  • Communicate with students
  • View student reviews

👑 Admin Features

  • Admin dashboard
  • View platform statistics
  • Monitor users
  • View bookings
  • Track system activity

💬 Communication Features

  • Student and tutor messaging system
  • Chat history
  • Email notifications
  • Session information sharing

🛠 Technologies Used

Frontend

  • HTML5
  • CSS3
  • JavaScript

Backend

  • Node.js
  • Express.js

Database

  • SQLite3

Development Tools

  • Visual Studio Code
  • Git
  • GitHub
  • GitHub Desktop

📂 Project Structure

TutorLink
│
├── config
│   └── serverConfig.js
│
├── controllers
│   ├── authController.js
│   ├── tutorController.js
│   ├── bookingController.js
│   ├── messageController.js
│   └── adminController.js
│
├── database
│   ├── database.sqlite
│   └── db.js
│
├── middleware
│   ├── authMiddleware.js
│   └── errorMiddleware.js
│
├── models
│
├── routes
│
├── public
│   ├── css
│   └── js
│
├── utils
│   ├── email.js
│
├── views
│   ├── index.html
│   ├── login.html
│   ├── register.html
│   ├── studentDashboard.html
│   ├── tutorDashboard.html
│   ├── adminDashboard.html
│   └── messages.html
│
├── server.js
├── package.json
└── README.md

⚙️ Installation & Setup

1. Clone the repository

git clone YOUR_GITHUB_REPOSITORY_LINK

2. Navigate into the project

cd TutorLink

3. Install dependencies

npm install

4. Start the server

npm start

The application will run at:

http://localhost:3000

🗄 Database

TutorLink uses SQLite3 as the database.

Main database tables:

  • Users
  • Tutors
  • Bookings
  • Messages
  • Reviews

Database responsibilities:

  • Store user accounts
  • Store tutor profiles
  • Manage bookings
  • Store conversations
  • Store reviews

📧 Email System

TutorLink includes email notification support using Nodemailer. Add your email and App Password on the utils/email.js file

Email features:

  • Booking notifications
  • Session updates
  • Communication messages

🔒 Security Features

  • Password validation
  • Role-based authorization
  • Protected routes
  • Session management
  • Input validation

📱 Responsive Design

The frontend supports:

  • Desktop devices
  • Tablets
  • Mobile devices

🔮 Future Improvements

Possible future enhancements:

  • Real-time messaging
  • Video meeting integration
  • Payment system
  • AI-based tutor matching

👨‍💻 Author

Jeet Patel

Software Development Student
Bow Valley College


📄 License

This project was created for educational and portfolio purposes.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages