A comprehensive web application that connects house owners with local service providers (plumbers, electricians, cleaners, etc.) based on location and service requirements.
- Register and login securely
- Search for service providers by location (pincode) and service category
- View provider profiles, ratings, and reviews
- Book services with date/time selection
- Cancel or modify bookings
- Rate and review completed services
- Real-time chat with service providers
- Register and await admin approval
- Set service categories and serviceable areas
- Configure availability and pricing
- Accept/reject booking requests
- Update booking status (Pending โ In-progress โ Completed)
- View earnings and job history
- Chat with customers
- Secure admin login
- Approve/reject service provider registrations
- Manage service categories
- Monitor platform usage and analytics
- View feedback and ratings
- Generate reports
- ๐ Location-Based Search: Find providers by pincode/zip code
- ๐ Booking System: Schedule services with date/time selection
- ๐ฌ Real-Time Chat: WebSocket-based messaging system
- โญ Rating & Review System: Rate completed services
- ๐ Analytics Dashboard: Admin monitoring and reporting
- ๐ฑ Responsive Design: Mobile-friendly interface
- ๐ Secure Authentication: Session-based login system
- Backend: Python Flask
- Database: MySQL
- Frontend: HTML5, CSS3, JavaScript, Bootstrap 5
- Real-time Communication: Flask-SocketIO
- Authentication: Flask-Login
- ORM: SQLAlchemy
- Python 3.8+
- MySQL 8.0+
- pip (Python package manager)
git clone <repository-url>
cd ServicePropython -m venv venv
# On Windows
venv\Scripts\activate
# On macOS/Linux
source venv/bin/activatepip install -r requirements.txtmysql -u root -p < database_setup.sql- Create MySQL database:
CREATE DATABASE servicepro_db;- Update database configuration in
app.py:
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://username:password@localhost/servicepro_db'Create a .env file in the root directory:
SECRET_KEY=your-super-secret-key-change-this-in-production
DATABASE_URL=mysql+pymysql://username:password@localhost/servicepro_db
FLASK_ENV=development
FLASK_DEBUG=Truepython app.pyThe application will be available at http://localhost:5000
- Email: admin@servicepro.com
- Password: admin123
ServicePro/
โโโ app.py # Main Flask application
โโโ config.py # Configuration settings
โโโ requirements.txt # Python dependencies
โโโ database_setup.sql # Database setup script
โโโ README.md # Project documentation
โโโ templates/ # HTML templates
โ โโโ base.html # Base template
โ โโโ index.html # Homepage
โ โโโ login.html # Login page
โ โโโ register.html # Registration page
โ โโโ user_dashboard.html # User dashboard
โ โโโ provider_dashboard.html # Provider dashboard
โ โโโ admin_dashboard.html # Admin dashboard
โ โโโ search_results.html # Search results
โ โโโ book_service.html # Booking page
โ โโโ chat.html # Chat interface
โโโ static/ # Static files (CSS, JS, images)
- user - User accounts (homeowners, providers, admin)
- service_provider - Provider-specific information
- service - Available service categories
- booking - Service booking records
- review - User reviews and ratings
- message - Chat messages
- Users can be homeowners, providers, or admin
- Service providers have additional profile information
- Bookings connect users with providers for specific services
- Reviews are linked to completed bookings
- Messages enable communication between users
- Register as a user
- Search for service providers by location and service type
- Book services with preferred date/time
- Chat with providers for details
- Rate completed services
- Register as a service provider
- Wait for admin approval
- Complete profile with services and areas
- Accept booking requests
- Update job status as work progresses
- Login with admin credentials
- Review pending provider applications
- Approve/Reject provider registrations
- Monitor platform activity
- Manage service categories
Update the database connection string in app.py:
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://username:password@localhost/servicepro_db'Add email settings to .env:
MAIL_SERVER=smtp.gmail.com
MAIL_PORT=587
MAIL_USE_TLS=True
MAIL_USERNAME=your-email@gmail.com
MAIL_PASSWORD=your-app-password- Set
FLASK_ENV=production - Use a production WSGI server (Gunicorn, uWSGI)
- Configure a reverse proxy (Nginx)
- Set up SSL certificates
- Use a production database
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 5000
CMD ["python", "app.py"]- ๐ Google Maps Integration: Location-based provider matching
- ๐ณ Payment Integration: Online payment processing
- ๐ฑ Mobile App: Native mobile applications
- ๐ค AI Recommendations: Smart provider suggestions
- ๐ Push Notifications: Real-time alerts
- ๐ Advanced Analytics: Detailed reporting and insights
- ๐ Multi-language Support: Internationalization
- ๐ Invoice Generation: Automatic invoice creation
-
Database Connection Error
- Verify MySQL is running
- Check database credentials
- Ensure database exists
-
Import Errors
- Activate virtual environment
- Install all requirements:
pip install -r requirements.txt
-
Socket.IO Issues
- Check if port 5000 is available
- Verify WebSocket support in browser
Check application logs for detailed error information:
python app.py 2>&1 | tee app.logThis project is licensed under the MIT License - see the LICENSE file for details.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
For support and questions:
- Email: support@servicepro.com
- Documentation: [Project Wiki]
- Issues: [GitHub Issues]
ServicePro - Connecting homeowners with trusted service providers since 2024! ๐ ๐ง