- Farmers create an account and upload verification documents (e.g., business license, farm registration).
- The admin reviews and approves farmer profiles. Only verified farmers can list products.
- Farmers log in and access their dashboard to list new products, including details such as product name, description, price, quantity, and harvest date.
- Farmers upload images of the product, which undergo automatic quality validation (e.g., image resolution, clarity).
- The farmer confirms that all data is correct and submits the product for admin approval.
- The admin receives a notification for new products pending review.
- The admin checks the product's details, images, and compliance with set guidelines (e.g., quality, origin).
- If the product passes, the admin approves it, and it’s made visible to buyers. If not, feedback is sent to the farmer to make adjustments.
- Approved products appear in the marketplace for customers to browse, filter, and search.
- Customers view product details, including images, price, farmer ratings, and origin.
- Customers add products to their cart, adjust quantities, and proceed to checkout.
- They can review their order details, choose a payment method, and confirm their order.
- Once a customer places an order, the farmer receives a notification on their dashboard.
- The farmer prepares the product for delivery, confirming product quality and quantity before dispatch.
- The admin has an order management dashboard to oversee the delivery status and handle issues if they arise.
- This helps ensure that farmers fulfill their orders on time and maintain quality standards.
- Customers receive their orders and can provide feedback, which the system tracks.
- Negative feedback or low ratings can automatically trigger a review of the farmer’s products by the admin.
- Notification System: Keeps all parties informed of updates (e.g., product approval, order status, feedback).
- Reports and Analytics: Allows the admin to monitor marketplace health, flag trends, and maintain high standards.
- Review System for Customers: Enables buyers to leave feedback on products, building transparency and trust.
- Inventory Management: Farmers can monitor stock levels and restock, with the system automatically notifying them when stock is low.
- Frontend: React (for dynamic UIs), Tailwind CSS (for styling).
- Backend: Django.
- Authentication: JWT or Firebase Auth for user verification.
- Notifications: Firebase Cloud Messaging or similar service.
- Image Handling: Cloudinary for image storage and quality checks.
Here’s a guide for setting up and using the fork method in a collaborative project, with code snippets to get your interns up and running with forking. This process ensures that each intern works on their own copy of the repository and can safely contribute without direct access to the main repo.
Each intern should fork the main repository to their GitHub account. This creates a copy of the repo under their account, allowing them to make changes independently.
-
Navigate to the Main Repository:
- Visit the main repository URL (e.g.,
https://github.com/Anonymous-Roys/CropCircle.git).
- Visit the main repository URL (e.g.,
-
Click "Fork":
- In the upper-right corner, click the Fork button to create a personal copy of the repository.
Once the fork is created, each intern should clone their forked repository to their local machine to start working on it.
# Replace 'username' with their GitHub username and 'your-repo' with the repository name.
git clone https://github.com/username/your-repo.gitTo keep their fork up-to-date with the main repository, each intern should add the main repo as an upstream remote.
-
Navigate to the Cloned Repo:
cd your-repo -
Add Upstream Remote:
# Replace 'your-org' with your GitHub organization or username. git remote add upstream https://github.com/your-org/your-repo.git -
Verify the Remote:
git remote -v # This should list both 'origin' (their fork) and 'upstream' (the main repo).
To stay updated with the latest changes from the main repository, interns should regularly fetch and merge changes from the upstream branch.
-
Fetch Upstream Changes:
git fetch upstream
-
Merge Changes into Local Branch:
git checkout main git merge upstream/main
-
Push Changes to Their Fork (if needed):
git push origin main
Each intern should create a new branch for every feature or bug fix to keep work organized and ensure smooth pull requests.
# Replace 'feature-name' with the name of the feature or issue being addressed.
git checkout -b feature-nameInterns should commit their changes with descriptive messages and push them to their forked repository.
-
Add and Commit Changes:
git add . git commit -m "Description of changes"
-
Push to Forked Repository:
# Push to the feature branch on their forked repository git push origin feature-name
After pushing their feature branch to their forked repository, they should create a pull request (PR) to the main repository.
- Go to the Main Repository on GitHub.
- Click on "New Pull Request":
- Choose compare across forks if it doesn’t automatically show their fork.
- Select Branches:
- The base repository should be the main repo (
/Anonymous-Roys/CropCircle.git). - The head repository should be your forked repo (
username/your-repo) and the feature branch they worked on.
- The base repository should be the main repo (
- Add a PR Description:
- Describe the changes made, any issues it solves, and relevant details.
- For Frontend start with "Frontend:"
- For Frontend start with "Backend:"
- Submit the PR:
- Click Create Pull Request to submit it for review.
If you or other reviewers request changes:
-
Make the Necessary Changes in the feature branch.
-
Commit and Push the changes to the same branch in their fork:
git add . git commit -m "Addressed review comments" git push origin feature-name
-
The Pull Request Will Update Automatically with the new changes.
To avoid conflicts, interns should frequently pull updates from the main repository using these commands.
-
Fetch and Merge Upstream Changes:
git checkout main git fetch upstream git merge upstream/main
-
Push Merged Updates to Their Fork:
git push origin main
| Action | Command |
|---|---|
| Clone the forked repo | git clone https://github.com/username/your-repo.git |
| Add upstream remote | git remote add upstream https://github.com/Anonymous-Roys/CropCircle.git |
| Create a new branch | git checkout -b feature-name |
| Commit changes | git add .git commit -m "Description of changes" |
| Push branch to forked repo | git push origin feature-name |
| Fetch and merge upstream changes | git fetch upstreamgit merge upstream/main |
| Push updates to forked main branch | git push origin main |