PSVQ is a modern digital solution for managing PSV (Public Service Vehicle) queues at pickup stations in Kenya. The app streamlines the process of vehicle queuing and fee payment, ensuring efficiency and transparency.
- Digital Queuing: Manage vehicle queues in a first-come, first-served order.
- Queue Payments: Vehicles can make queue payments directly through the app.
- Sacco Management: Saccos can manage vehicles and queues for their stations.
- Real-Time Updates: Track queue status and payment confirmations in real-time.
- Role-Based Access: Separate accounts for Sacco admins and vehicle owners.
- Secure Payments: Integration with M-Pesa, card, and other payment methods.
- Framework: Django (Python)
- Database: PostgreSQL/SQLite
- Authentication: OAUTH2 Tokens
- API Design: RESTful API using Flask-RESTful
- Backend: Deployed on AWS/GCP/CPanel
- Python 3.8+
- PostgreSQL/SQLite
- Virtual Environment
-
Clone the repository:
git clone https://github.com/muchokidavid/psvq.git cd psvq/backend -
Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Set up environment variables: Create a
.envfile in thebackenddirectory and add:DJANGO_ENV=development DATABASE_URL=postgresql://user:password@localhost:5432/psvq SECRET_KEY=your_secret_key
-
Run database migrations:
python manage.py migrate
-
Start the server:
python manage.py runserver
- Sign Up: Create an account as a Sacco admin or vehicle owner.
- Add Vehicles: Sacco admins can register vehicles to their Sacco.
- Make Payments: Vehicle owners can pay queue fees through the app.
- Join Queue: Once payment is complete, vehicles can join the queue in a first-come, first-served order.
- Track Queue: Monitor the real-time status of the queue and get notifications when served.
| Endpoint | Method | Description |
|---|---|---|
/api/saccos |
GET | List all Saccos |
/api/saccos |
POST | Create a new Sacco |
/api/vehicles |
GET | List vehicles for a Sacco |
/api/queue |
POST | Add a vehicle to the queue |
/api/payments |
POST | Make a queue payment |
/api/queue/status |
GET | Get current queue status |
- SMS, Whatsapp and Email Notifications for queue updates.
- Advanced analytics and reporting for Sacco performance.
- GPS-based station mapping.
- Integration with NTSA databases for vehicle verification.
This project is licensed under the MIT License. See the LICENSE file for details.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch (
feature/your-feature-name). - Commit your changes.
- Submit a pull request.
For questions or support, contact:
- Email: support@psvq.co.ke
- Phone: +254 723 018 212