This tutoring scheduling application simplifies the process of scheduling tutoring sessions between students and tutors. The app provides profiles for three main user types: Sysadmins, Tutors, and Students, each with role-specific features.
Sysadmins can manage users, configure system settings, and generate reports. Tutors can manage their availability, view scheduled sessions, and communicate with students. Students can browse tutor profiles, book sessions, and track their learning progress.
- User Profiles: Sysadmins, Tutors, and Students with tailored features for each role.
- Scheduling System: Easy-to-use session booking system with calendar integration.
- User Management: Full control for Sysadmins over user roles, permissions, and activity monitoring.
- Session Management: Tutors and students can view, modify, and cancel sessions.
- Notifications: Real-time notifications for session updates and reminders.
- Analytics Dashboard: Detailed reports on sessions, user activity, and payments.
- Payment Integration: Secure payment gateway to handle transactions between students and tutors.
- Multi-platform Support: Mobile-first design with support for web and mobile devices.
- Frontend: React Native
- Backend: Node.js (Express)
- Database: PostgreSQL
- Authentication: Firebas
- Calendar Integration: Google Calendar API
- Node.js (v14 or higher)
- MongoDB or PostgreSQL
- Stripe Account (for payment integration)
- Firebase / Auth0 Account (for authentication)
-
Clone the repository:
git clone https://github.com/ayubswrld/tutoring-scheduler.git
-
Navigate to the project directory:
cd tutoring-scheduler -
Install dependencies:
npm install
-
Set up environment variables:
- Create a
.envfile in the root directory with the following:DB_URI=<your-database-uri> STRIPE_SECRET_KEY=<your-stripe-secret-key> FIREBASE_API_KEY=<your-firebase-api-key>
- Create a
-
Start the development server:
npm run dev
-
Access the application at
http://localhost:3000.
- Manage Users: View and control all student and tutor accounts.
- Monitor System Health: Review system logs and performance reports.
- View Analytics: Get detailed insights into user engagement and financial reports.
- Manage Availability: Set available times for students to book sessions.
- Track Sessions: View upcoming, completed, and canceled sessions.
- Communicate with Students: Send and receive messages directly in the app.
- Browse Tutors: Search for tutors based on subject or availability.
- Book Sessions: Schedule one-on-one tutoring sessions with preferred tutors.
- Track Progress: View past sessions and follow up on assignments or learning goals.
- Full access to manage users, sessions, payments, and system configurations.
- Limited access to manage their own sessions, availability, and communication with students.
- Access to browse, schedule, and manage their tutoring sessions.
Contributions are welcome! To contribute:
- Fork the repository.
- Create a feature branch:
git checkout -b feature/your-feature - Commit your changes:
git commit -m 'Add new feature' - Push to the branch:
git push origin feature/your-feature - Open a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.