A comprehensive home maintenance services platform that connects customers with service providers, built with Django REST Framework and supports real-time chat and notifications.
Servfix is a graduation project aimed at facilitating access to home maintenance services through a reliable digital platform. Customers can find suitable service providers, while service providers can showcase their work and communicate with customers.
- 🔍 Search for service providers by type and location
- ⭐ Rating and review system
- 💬 Direct chat with service providers
- 📱 Real-time notifications
- ❤️ Favorite service providers list
- 📍 Location and city specification
- 📋 Detailed profile with work portfolio
- 💼 Display available services
- 💰 Set fixed pricing
- 📊 Track ratings and statistics
- 🗂️ Manage customer requests
- 🔐 Secure authentication system using JWT
- 🌐 Complete RESTful API
- 💬 Real-time chat using WebSockets
- 📧 Advanced notification system
- 🖼️ Image upload and management
- 📱 CORS support for mobile applications
- Backend: Django 5.0.1 + Django REST Framework
- Database: MySQL / SQLite (for development)
- Authentication: JWT (Simple JWT)
- Real-time: Django Channels + WebSockets
- File Upload: Pillow for image processing
- Deployment: Vercel ready
servfix/
├── account/ # User management and profiles
├── service/ # Service management
├── chat/ # Chat system
├── notification/ # Notification system
├── notifi/ # Additional notifications
└── media/ # Media files
- Python 3.11.3 or newer
- MySQL (optional - SQLite can be used for development)
-
Download Python 3.11.3:
https://www.python.org/downloads/release/python-3113/ -
Clone the project:
git clone https://github.com/ahmedhessuin27/Servfix.git cd Servfix -
Create virtual environment:
python -m venv venv
-
Activate virtual environment:
Windows:
call ./venv/Scripts/activateLinux/Mac:
source venv/bin/activate -
Install requirements:
pip install -r requirements.txt
-
Setup database:
cd servfix python manage.py makemigrations python manage.py migrate -
Create superuser:
python manage.py createsuperuser
Or use default admin account:
- Username:
admin - Email:
admingamed@gmail.com - Password:
admingamed30203020
- Username:
-
Run the server:
python manage.py runserver
Now you can access the application at: http://127.0.0.1:8000
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'servv',
'USER': 'root',
'PASSWORD': '',
'PORT': '3306',
'HOST': 'localhost',
}
}DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}POST /api/auth/login/- User loginPOST /api/auth/register/- User registrationPOST /api/auth/refresh/- Token refresh
GET /api/services/- List all servicesGET /api/services/{id}/- Get specific service
GET /api/providers/- List service providersGET /api/providers/{id}/- Get provider profilePOST /api/providers/{id}/review/- Add review
WebSocket /ws/chat/{room_name}/- Real-time chat
The project is pre-configured for Vercel deployment:
- Push code to GitHub
- Connect repository to Vercel
- Automatic deployment using
vercel.jsonconfiguration
We welcome contributions! Please:
- Fork the project
- Create a new branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Email: servfix2023@gmail.com
- GitHub: ahmedhessuin27
This project is licensed under the MIT License - see the LICENSE file for details.
- ✅ Complete graduation project
- ✅ Secure authentication system
- ✅ Real-time chat
- ✅ Rating system
- ✅ Image upload and management
- ✅ Advanced notifications
- ✅ Production ready
Note: This is an educational project for development and learning purposes. Please review security settings before using in production environment.