This project consists of a backend API built with Flask and a frontend application using React. The application facilitates the sign-up and management of tutoring sessions. Tutors can apply to join, and students (tutees) can sign up for sessions based on tutor availability.
- Flask
- Flask-RESTful
- SQLAlchemy
- Clone the repository:
git clone <repository_url> cd <repository_directory>
- Create and activate a virtual environment:
python3 -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
- Install the dependencies:
pip install -r requirements.txt
- Set up the database:
flask db upgrade
python app.py
The API will be accessible at http://localhost:5555
.
- GET
/
- Returns a welcome message and available endpoints.
- GET
/sessions
- Returns a list of all sessions.
- POST
/sessions
- Creates a new session.
- GET
/tutors
- Returns a list of all tutors.
- POST
/tutors
- Creates a new tutor.
- GET
/tutees
- Returns a list of all tutees.
- POST
/tutees
- Creates a new tutee.
- GET
/scheduled_days
- Returns a list of all scheduled days.
- POST
/scheduled_days
- Creates a new scheduled day.
- GET
/courses
- Returns a list of all courses.
- POST
/courses
- Creates a new course.
-
Sessions by ID
- GET
/sessions/<int:id>
- PATCH
/sessions/<int:id>
- DELETE
/sessions/<int:id>
- GET
-
Tutors by ID
- GET
/tutors/<int:id>
- PATCH
/tutors/<int:id>
- DELETE
/tutors/<int:id>
- GET
-
Tutees by ID
- GET
/tutees/<int:id>
- PATCH
/tutees/<int:id>
- DELETE
/tutees/<int:id>
- GET
-
Sessions by Tutor ID
- GET
/tutors/<int:id>/sessions
- GET
-
Sessions by Tutee ID
- GET
/tutees/<int:id>/sessions
- GET
-
Tutee by Student Number
- GET
/tutees/<int:student_number>/student_number
- GET
- React
- React Router
- Formik
- Navigate to the frontend directory:
cd frontend
- Install the dependencies:
npm install
npm start
The application will be accessible at http://localhost:3000
.
- Main application component that sets up the layout including
NavBar
,Outlet
, andSidebar
.
- Displays the weekly schedule of sessions and allows for sign-up for available slots.
- Represents an individual session card. It shows session details and allows users to sign up for a session if it's available.
- Form component for signing up for a tutoring session.
- Displays the application form for tutors to apply to join the platform.
- Form component for tutor application including validation and submission handling.
- Navigate to the schedule page.
- Click on an available time slot to sign up.
- Fill out the form with your details and submit.
- Navigate to the application page.
- Fill out the tutor application form including name, certification level, available days, and courses.
- Submit the form and wait for confirmation.
- 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.
This project is licensed under the MIT License. See the LICENSE file for details.