Welcome to the FYSI Marketplace backend project! This repository contains the Django-based RESTful API for our eco-friendly e-commerce platform. This README will guide you through setting up your development environment and contributing to the project.
- Project Overview
- Getting Started
- Project Structure
- Development Workflow
- Coding Standards
- Testing
- Deployment
- Team Communication
Our backend provides the following core functionalities:
- User Management (customers, vendors, admins)
- Product Management
- Vendor Dashboard
- Customer Features (browsing, cart, checkout)
- Admin Dashboard
- Payment Processing (Paystack integration)
- Order Fulfillment
Ensure you have the following installed:
- Python 3.8+ (preferably 3.9) with pip
-
Clone the repository:
git clone https://github.com/Techies-Collab-and-Upskill-Live-Project/greenhouse-backend.git cd greenhouse-backend
-
Create a virtual environment and activate it:
python -m venv venv on macOS use source venv/bin/activate # On Windows, use `venv\Scripts\activate`
-
Install dependencies:
pip install -r requirements.txt
-
Set up your local database:
- We are still going to be using SQLite for development purposes.
- Copy
.env.example
to.env
and update the database credentials
-
Apply migrations:
python manage.py migrate
-
Create a superuser:
python manage.py createsuperuser
-
Run the development server:
python manage.py runserver
(This will be added later)
-
Create a new branch for each feature or bug fix:
git checkout -b your-feature-name
-
Make your changes, commit them with clear messages:
git commit -m "Add user registration endpoint"
-
Push your branch and create a pull request on GitHub
-
I will review your pr and merge if there is no conflict
-
Once merged, pull the latest changes and test your feature
-
If there are any issues, create a new branch and fix them
-
Repeat the process until your feature is complete
*** Please make sure your branch is always up to date with the latest changes before you push your content to avoid conflict. ***
- Follow PEP 8 for Python code style
- Use meaningful variable and function names
- Write docstrings for all functions, classes, and modules
- Keep functions small and focused on a single task
- Write unit tests for all new features and bug fixes
- Run tests before pushing your changes:
python manage.py test
(This will be discussed later)
- We use WhatsApp for daily communication
- Team meetings are held every Monday and Friday
- Use GitHub Issues for task tracking and discussions
- Update the project board on GitHub with your progress
- Users/register - Post method
- Users/login ==> Post method
- Users/activate ==> Post method
- Users/reset-password-request ==> Post method
- Users/reset-pasword ==> Post method
- Users/change-password ==> Put method
- Users/customer-profile/:userid ==> Put method and Get method
- Users/vendor-profile/:userid ==> Put method and Get method
Remember to keep this README updated as the project evolves. If you have any questions or need help, don't hesitate to reach out to me or post on the Devs WhatsApp group. Let's build an amazing project together! 😄 🚀 🔥
Happy coding!