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.
- User registration and login
- Session-based authentication
- Role-based access control
- Three user roles:
- Student
- Tutor
- Admin
- Search available tutors
- View tutor profiles
- Request tutoring sessions
- Manage bookings
- Communicate with tutors
- Receive email notifications
- View meeting instructions
- Create tutor profile
- Add tutoring information
- Manage availability
- Receive student booking requests
- Communicate with students
- View student reviews
- Admin dashboard
- View platform statistics
- Monitor users
- View bookings
- Track system activity
- Student and tutor messaging system
- Chat history
- Email notifications
- Session information sharing
- HTML5
- CSS3
- JavaScript
- Node.js
- Express.js
- SQLite3
- Visual Studio Code
- Git
- GitHub
- GitHub Desktop
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
git clone YOUR_GITHUB_REPOSITORY_LINKcd TutorLinknpm installnpm startThe application will run at:
http://localhost:3000
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
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
- Password validation
- Role-based authorization
- Protected routes
- Session management
- Input validation
The frontend supports:
- Desktop devices
- Tablets
- Mobile devices
Possible future enhancements:
- Real-time messaging
- Video meeting integration
- Payment system
- AI-based tutor matching
Jeet Patel
Software Development Student
Bow Valley College
This project was created for educational and portfolio purposes.