MwalimuConnect is a peer-to-peer tutoring platform designed to facilitate real-time communication between tutors and students in Kenya. The platform leverages Go APIs for seamless interaction and blockchain technology for secure payment transactions. This README provides an overview of the project's scope, technologies used, and instructions for setup and usage.
- Project Overview
- Technology Stack
- Features
- Setup and Installation
- Configuration
- Running the Application
- API Endpoints
- Blockchain Integration
- Contributing
- License
MwalimuConnect aims to bridge the gap between students and tutors by providing a platform where they can connect, communicate, and transact securely. The platform supports real-time communication via video and chat, allows for scheduling and managing tutoring sessions, and ensures that payments are processed securely through blockchain technology.
- Programming Language: Go (Golang)
- Frameworks & Libraries:
- Gin - HTTP web framework for Go
- Gorm - ORM library for Go
- WebRTC - Real-time communication technology
- Blockchain - Ethereum-based smart contracts for payment transactions
- Database:
- PostgreSQL - Relational database management system
- Front-end:
- HTML, CSS, JavaScript (for web-based UI)
- Testing:
- Go testing framework
- User Registration and Authentication: Secure user registration and login mechanisms.
- Real-time Communication: Video and chat functionality for tutoring sessions.
- Session Scheduling: Ability to schedule and manage tutoring sessions.
- Payment Integration: Secure payments via blockchain technology.
- User Profiles: Customizable user profiles for tutors and students.
- Session History: Track past tutoring sessions and payments.
-
Clone the Repository:
git clone https://github.com/Murzuqisah/MwalimuConnect.git cd MwalimuConnect
-
Install Dependencies:
Ensure you have Go installed. Run the following command to install required Go modules:
go mod download
-
Set Up the Database:
Create a PostgreSQL database and update the database configuration in the
.env
file. -
Run Migrations:
Apply the database migrations to set up the initial schema:
go run migrate.go
-
Start the Application:
Run the application on port 8080:
go run main.go
To start the application, execute:
go run main.go
The application will be available at http://localhost:8080
.
- POST /api/register: Register a new user
- POST /api/login: Authenticate a user
- POST /api/schedule: Schedule a new tutoring session
- POST /api/complete: Mark a session as completed and process payment
- GET /api/profile: Retrieve user profile details
- GET /api/sessions: Retrieve session history
Refer to the API documentation for detailed information on endpoints and request/response formats.
Payments are processed through Ethereum-based smart contracts.
Contributions are welcome! Please fork the repository and submit a pull request with your changes. For more details, refer to the CONTRIBUTING.md file.
This project is licensed under the MIT License - see the LICENSE file for details.