The Tuition Searching Platform is a comprehensive web application designed to connect students with teachers in Pakistan. The platform allows teachers to offer tutoring services, while students can search for, hire, and engage teachers based on various criteria such as subjects, grades, and location. The application supports both online and physical tutoring sessions, and includes advanced features like chat functionality, contract management, notifications, and integration with Gemini LLM for a chatbot to assist users.
- Features
- Tech Stack
- Getting Started
- Environment Variables
- Project Structure
- API Documentation
- Contributing
- License
- User Authentication: Secure login and signup with JWT-based authentication.
- Teacher and Student Profiles: Manage detailed profiles for both students and teachers.
- Search Functionality: Search for teachers based on subjects, grades, availability, and location.
- Contract Management: Create and manage contracts between students and teachers.
- Chat System: Real-time chat between students and teachers.
- Notifications: Notification system for contract updates, chat messages, and more.
- LLM Integration: Gemini LLM-powered chatbot for assisting users on the platform.
- Frontend: Next.js, React, Redux, Tailwind CSS (optional)
- Backend: Next.js API routes, Node.js, PostgreSQL
- Authentication: JWT (JSON Web Tokens)
- LLM Integration: Gemini LLM
- State Management: Redux Toolkit
- Styling: CSS Modules, Tailwind CSS (optional)
- Testing: Jest, React Testing Library, Postman (for API testing)
Make sure you have the following installed on your machine:
- Node.js (v14.x or later)
- npm (v6.x or later)
- PostgreSQL (or another relational database)
- Git
-
Clone the Repository
git clone https://github.com/your-username/tuition-searching-platform.git cd tuition-searching-platform
-
Install Dependencies
npm install
-
Set Up Environment Variables
Create a .env.local file in the root of your project with the following content:
DATABASE_URL=postgres://username:password@localhost:5432/your_database
JWT_SECRET=your_jwt_secret_key
GEMINI_SECRET_KEY=your_gemini_secret_key
NODE_ENV=development
NEXT_PUBLIC_API_URL=http://localhost:3000/api
- Start the server
npm run dev
POST /api/auth/login: Authenticate a user and return a JWT. POST /api/auth/signup: Register a new user.
GET /api/teachers: Retrieve a list of teachers. GET /api/teachers/[id]: Retrieve a specific teacher's details.
GET /api/students: Retrieve a list of students. GET /api/students/[id]: Retrieve a specific student's details.
POST /api/contracts: Create a new contract. GET /api/contracts/[id]: Retrieve contract details.
POST /api/chat: Send a chat message. GET /api/chat/[id]: Retrieve chat history.
Refer to the docs/api-documentation.md file for detailed API documentation.
We welcome contributions to the Tuition Searching Platform! Please follow these steps to contribute:
This project is licensed under the MIT License. See the LICENSE file for more details.