- Overview
- Features
- Technology Stack
- Installation
- Configuration
- Migrations
- Usage
- Contributing
- Testing
- License
- Contact
Freelance Marketplace Django is a powerful platform built on Django, facilitating seamless interactions between freelancers and clients. It provides a comprehensive solution for freelance service exchanges with a focus on security, efficiency, and ease of use.
- User Authentication: Secure sign-up and login functionalities with password hashing and JWT tokens.
- Service Management: Easy-to-use interface for freelancers to list, edit, and manage their services, including pricing and descriptions.
- Order Processing: Smooth order management system with real-time updates on order status.
- Real-time Chat: Built-in chat functionality for direct communication between freelancers and clients.
- Payment Integration: Secure payment gateway integration for hassle-free transactions.
- Search and Filter: Efficient search and filter options for finding relevant services.
- Admin Panel: Admin dashboard for managing users, services, orders, and site settings.
- Backend: Django, Python
- Frontend: HTML, CSS, JavaScript
- Database: PostgreSQL (production)
- Others: Celery for asynchronous task processing, Redis for caching, Bootstrap 5 for frontend styling
This project utilizes Razorpay for payment gateway integration. Razorpay is a leading payment gateway provider in India, offering secure and seamless payment processing solutions.
Bootstrap 5 is used for frontend styling and layout. It provides a comprehensive set of responsive design components and utilities, making it easier to build modern and mobile-friendly web interfaces.
Before getting started, ensure you have the following prerequisites installed on your system:
- Python 3.8+
- pip (Python package installer)
- PostgreSQL
git clone https://github.com/anfiquehussain/Freelance-Marketplace-Django.git
- Navigate to the project directory:
cd Freelance-Marketplace-Django
- Create and activate a virtual environment:
- On Windows:
py -m venv env
env\Scripts\activate
- On Unix or MacOS:
python -m venv env
source env/bin/activate
- Install dependencies:
pip install -r requirements.txt
Before running the application, configure the environment variables as per your setup by creating a .env
file in the project root with the necessary values.
In the settings.py
file, configure the database settings according to your setup:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'your_database_name',
'USER': 'your_database_user',
'PASSWORD': 'your_database_password',
'HOST': 'localhost', # Or your PostgreSQL server's address
'PORT': '5432', # Default PostgreSQL port
}
}
For Razorpay integration, provide your Razorpay publishable and secret keys:
REZORPAY_PUBLISHABLE_KEY = 'your_razorpay_publishable_key'
REZORPAY_SECRET_KEY = 'your_razorpay_secret_key'
Configure the settings for static and media files:
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
Ensure that you have proper file permissions and directory structures set up for media file uploads.
You may need to configure other settings based on your project's requirements, such as email configuration, security settings, and third-party API integration.
Before running the application, you need to apply the migrations to set up the database schema. Follow these steps:
-
Navigate to the project directory:
cd Freelance-Marketplace-Django
-
Activate the virtual environment (if not already activated):
- On Windows:
env\Scripts\activate
- On Unix or MacOS:
source env/bin/activate
- On Windows:
-
Check for Missing Migrations (Optional):
It's a good practice to check if there are any new migrations that need to be created. Run the following command to generate new migrations based on model changes:
python manage.py makemigrations
This command will inspect the models and create new migration files if any changes are detected. Review the changes and migrate them if necessary.
-
Apply Migrations:
Run the following command to apply migrations:
python manage.py migrate
This command will create the necessary tables in the database based on the models defined in the Django app.
-
Create Superuser (Optional):
If you want to access the Django admin interface, you can create a superuser using the following command:
python manage.py createsuperuser
Follow the prompts to create a superuser account.
Now, your database schema is set up, and you're ready to run the application.
To run the development server:
python manage.py runserver
Visit http://127.0.0.1:8000/ in your browser to access the application.
Contributions are welcome! Please follow these steps to contribute:
- Fork the repository.
- Create a new branch for your feature or fix.
- Commit your changes with meaningful commit messages.
- Push your branch and open a pull request.
To run tests for the project, use the following command:
python manage.py test
This command will execute all the test cases defined in the project and provide feedback on their success or failure.
Testing Framework The project uses the Django testing framework for unit tests, integration tests, and functional tests. It provides a comprehensive set of tools for writing and running tests to ensure
This project is licensed under the MIT License - see the LICENSE file for details.
For any queries or further assistance, please contact Anfique Hussain V.