- Overview
- Features
- Technology Stack
- Project Structure
- Installation
- Usage
- API Endpoints
- User Roles
- Service Categories
- Development
- Testing
- Contributing
- License
NetFix is a comprehensive home services platform built with Django that connects customers with service providers. Whether you need electrical work, plumbing, housekeeping, or any other home service, NetFix provides a seamless platform to find and request professional services.
The platform supports two types of users:
- Companies: Service providers who can create and manage their service offerings
- Customers: Users who can browse and request services from registered companies
- Service Management: Create, edit, and manage service offerings
- Request Management: View and manage incoming service requests
- Profile Management: Maintain company profile and service portfolio
- Field Specialization: Specialize in specific service categories or offer "All in One" services
- Real-time Notifications: Get notified of new service requests
- Service Discovery: Browse services by category, price, or popularity
- Service Requests: Request services with detailed requirements
- Cost Estimation: Real-time cost calculation based on estimated hours
- Request History: Track all previous service requests
- Profile Management: Manage personal information and preferences
- Framework: Django 3.1.14
- Language: Python 3.8+
- Database: SQLite (development)
- Authentication: Django's built-in authentication system
- Admin Interface: Django Admin for backend management
- Templates: Django Templates with custom template tags
- Styling: Custom CSS with modern design principles
- JavaScript: Vanilla JavaScript for interactive features
- Responsive Design: Mobile-first approach with CSS Grid and Flexbox
- Virtual Environment: Python venv for dependency isolation
- Static Files: Django's static file handling
- Forms: Django Forms with custom validation
- URL Routing: Django's URL dispatcher
netfix/
├── manage.py # Django management script
├── requirements.txt # Python dependencies
├── db.sqlite3 # SQLite database (development)
├── static/ # Static files (CSS, JS, images)
│ └── css/
│ ├── style.css # Main stylesheet
│ └── logo.png # Application logo
├── netfix/ # Main project configuration
│ ├── __init__.py
│ ├── settings.py # Django settings
│ ├── urls.py # Main URL configuration
│ ├── views.py # Project-level views
│ └── wsgi.py # WSGI configuration
├── main/ # Main app (home, navigation)
│ ├── models.py
│ ├── views.py
│ ├── urls.py
│ └── templates/
│ └── main/
│ ├── base.html # Base template
│ ├── home.html # Homepage
│ └── navbar.html # Navigation component
├── users/ # User management app
│ ├── models.py # User, Company, Customer models
│ ├── views.py # Authentication and profile views
│ ├── forms.py # User registration and login forms
│ ├── urls.py
│ ├── admin.py
│ └── templates/
│ └── users/
│ ├── login.html
│ ├── register.html
│ ├── register_company.html
│ ├── register_customer.html
│ ├── customer_profile.html
│ └── company_profile.html
└── services/ # Services management app
├── models.py # Service and RequestedService models
├── views.py # Service CRUD and request handling
├── forms.py # Service creation and request forms
├── urls.py
├── admin.py
└── templates/
└── services/
├── list.html
├── create.html
├── single_service.html
├── request_service.html
├── field.html
└── most_requested.html
- Python 3.8 or higher
- pip (Python package installer)
- Git (for cloning the repository)
-
Clone the Repository
git clone https://github.com/ombima56/netfix.git cd netfix -
Create Virtual Environment
python3 -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
-
Install Dependencies
pip install -r requirements.txt
-
Database Setup
python manage.py makemigrations python manage.py migrate
-
Create Superuser (Optional)
python manage.py createsuperuser
-
Collect Static Files
python manage.py collectstatic
-
Run Development Server
python manage.py runserver
-
Access the Application
- Open your browser and navigate to
http://127.0.0.1:8000 - Admin panel:
http://127.0.0.1:8000/admin
- Open your browser and navigate to
Django==3.1.14
Pillow==8.3.2
python-decouple==3.4-
Registration
- Visit the homepage and click "Register"
- Choose between "Customer" or "Company" registration
- Fill in the required information
- Verify your email (if email verification is enabled)
-
Login
- Use your username/email and password to log in
- Access your dashboard based on your user type
-
Create Services
- Navigate to "Create Service" from your dashboard
- Fill in service details (name, description, price per hour, category)
- Submit to make your service available to customers
-
Manage Requests
- View incoming service requests in your dashboard
- Accept or decline requests
- Communicate with customers about service details
-
Browse Services
- Explore services by category or search
- View service details and company profiles
- Compare prices and ratings
-
Request Services
- Select a service you need
- Fill in the request form with address and estimated hours
- Submit your request and wait for company response
GET /login/- Login pagePOST /login/- Process loginGET /register/- Registration optionsGET /register/customer/- Customer registrationPOST /register/customer/- Process customer registrationGET /register/company/- Company registrationPOST /register/company/- Process company registrationGET /logout/- Logout user
GET /services/- List all servicesGET /services/create/- Create service form (companies only)POST /services/create/- Process service creationGET /services/<id>/- Service detail pageGET /services/<id>/request/- Request service formPOST /services/<id>/request/- Process service requestGET /services/field/<field>/- Services by categoryGET /services/most-requested/- Most requested services
GET /customer/<username>/- Customer profileGET /company/<username>/- Company profileGET /company/requests/- Company's received requests (companies only)
GET /admin/- Django admin interface
- Registration: Simple registration with username, email, password, and optional birth date
- Service Discovery: Browse all available services with filtering and sorting options
- Service Requests: Submit detailed service requests with address and time estimates
- Profile Management: View and edit personal information
- Request History: Track all submitted service requests and their status
- Cost Calculation: Real-time cost estimation based on service hourly rates
- Registration: Registration with company-specific information and field specialization
- Service Management: Create, edit, and delete service offerings
- Request Management: View and respond to incoming service requests
- Profile Management: Maintain company profile and service portfolio
- Field Restrictions: Limited to services within their specialization (except "All in One" companies)
- Dashboard: Comprehensive view of all company services and requests
- User Management: Manage all users, companies, and customers
- Service Oversight: Monitor and manage all services on the platform
- Request Monitoring: View all service requests across the platform
- Data Analytics: Access to platform usage statistics and reports
The platform supports the following service categories:
- Air Conditioner - AC installation, repair, and maintenance
- Carpentry - Furniture making, repairs, and custom woodwork
- Electricity - Electrical installations, repairs, and maintenance
- Gardening - Landscaping, plant care, and garden maintenance
- Home Machines - Appliance repair and maintenance
- Housekeeping - Cleaning services and home organization
- Interior Design - Home decoration and space planning
- Locks - Lock installation, repair, and security services
- Painting - Interior and exterior painting services
- Plumbing - Pipe installation, repairs, and maintenance
- Water Heaters - Water heater installation and repair
- All in One - Companies that can provide services across all categories
- Companies can only create services within their registered field of work
- Exception: "All in One" companies can create services in any category
- Services cannot be categorized as "All in One" (only companies can have this designation)
-
Fork and Clone
git fork https://github.com/original-repo/netfix.git git clone https://github.com/yourusername/netfix.git cd netfix -
Install Development Dependencies
pip install -r requirements-dev.txt
-
Environment Variables Create a
.envfile in the project root:DEBUG=True SECRET_KEY=your-secret-key-here DATABASE_URL=sqlite:///db.sqlite3
-
Pre-commit Hooks (Optional)
pip install pre-commit pre-commit install
- Python: Follow PEP 8 guidelines
- Django: Follow Django coding style
- HTML/CSS: Use semantic HTML and modern CSS practices
- JavaScript: Use ES6+ features where appropriate
- Comments: Document complex logic and business rules
When making model changes:
python manage.py makemigrations
python manage.py migrateFor CSS/JS changes:
python manage.py collectstatic --noinput# Create new app
python manage.py startapp appname
# Shell access
python manage.py shell
# Database shell
python manage.py dbshell
# Check for issues
python manage.py check
# Show migrations
python manage.py showmigrations# Run all tests
python manage.py test
# Run specific app tests
python manage.py test users
python manage.py test services
# Run with coverage
coverage run --source='.' manage.py test
coverage report
coverage htmltests/
├── test_models.py # Model tests
├── test_views.py # View tests
├── test_forms.py # Form tests
└── test_utils.py # Utility function tests
We welcome contributions to NetFix! Please follow these guidelines:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests for new functionality
- Ensure all tests pass
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Code Quality: Ensure your code follows the project's coding standards
- Testing: Add tests for new features and bug fixes
- Documentation: Update documentation for any new features
- Commit Messages: Use clear, descriptive commit messages
- Pull Requests: Provide detailed descriptions of changes
- Bug Fixes: Help identify and fix bugs
- New Features: Implement new functionality
- UI/UX Improvements: Enhance the user interface and experience
- Performance: Optimize database queries and page load times
- Documentation: Improve and expand documentation
- Testing: Increase test coverage
This project is licensed under the MIT License - see the LICENSE file for details.
For support and questions:
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Django community for the excellent framework
- Contributors who have helped improve this project
- Open source libraries and tools used in this project
© 2025 NetFix. All rights reserved.
