Skip to content

Speaks to a community of agricultural trade and collaboration.

Notifications You must be signed in to change notification settings

georgegyan/CropCircle

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 

Repository files navigation

1. Full Workflow of the Application

Step 1: Farmer Registration and Verification

  • 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.

Step 2: Product Upload by Farmer

  • 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.

Step 3: Admin Verification of Product

  • 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.

Step 4: Product Display on Customer Dashboard

  • Approved products appear in the marketplace for customers to browse, filter, and search.
  • Customers view product details, including images, price, farmer ratings, and origin.

Step 5: Customer Order Placement

  • 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.

Step 6: Farmer Receives Order Notification

  • 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.

Step 7: Admin Monitors Order Fulfillment

  • 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.

Step 8: Product Delivery and Customer Feedback

  • 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.

Additional Features to Enhance the Workflow

  • 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.

Technologies Suggested

  • 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.


Contributions

Step 1: Forking the Repository

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.

  1. Navigate to the Main Repository:

    • Visit the main repository URL (e.g., https://github.com/Anonymous-Roys/CropCircle.git).
  2. Click "Fork":

    • In the upper-right corner, click the Fork button to create a personal copy of the repository.

Step 2: Clone the Forked 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.git

Step 3: Set Up Upstream Remote

To keep their fork up-to-date with the main repository, each intern should add the main repo as an upstream remote.

  1. Navigate to the Cloned Repo:

    cd your-repo
  2. Add Upstream Remote:

    # Replace 'your-org' with your GitHub organization or username.
    git remote add upstream https://github.com/your-org/your-repo.git
  3. Verify the Remote:

    git remote -v
    # This should list both 'origin' (their fork) and 'upstream' (the main repo).

Step 4: Syncing Fork with the Main Repository

To stay updated with the latest changes from the main repository, interns should regularly fetch and merge changes from the upstream branch.

  1. Fetch Upstream Changes:

    git fetch upstream
  2. Merge Changes into Local Branch:

    git checkout main
    git merge upstream/main
  3. Push Changes to Their Fork (if needed):

    git push origin main

Step 5: Creating a New Feature Branch

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-name

Step 6: Committing and Pushing Changes

Interns should commit their changes with descriptive messages and push them to their forked repository.

  1. Add and Commit Changes:

    git add .
    git commit -m "Description of changes"
  2. Push to Forked Repository:

    # Push to the feature branch on their forked repository
    git push origin feature-name

Step 7: Creating a Pull Request

After pushing their feature branch to their forked repository, they should create a pull request (PR) to the main repository.

  1. Go to the Main Repository on GitHub.
  2. Click on "New Pull Request":
    • Choose compare across forks if it doesn’t automatically show their fork.
  3. 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.
  4. 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:"
  5. Submit the PR:
    • Click Create Pull Request to submit it for review.

Step 8: Addressing Review Comments

If you or other reviewers request changes:

  1. Make the Necessary Changes in the feature branch.

  2. 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
  3. The Pull Request Will Update Automatically with the new changes.


Step 9: Keeping the Fork Updated Regularly

To avoid conflicts, interns should frequently pull updates from the main repository using these commands.

  1. Fetch and Merge Upstream Changes:

    git checkout main
    git fetch upstream
    git merge upstream/main
  2. Push Merged Updates to Their Fork:

    git push origin main

Common Commands Summary

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 upstream
git merge upstream/main
Push updates to forked main branch git push origin main

About

Speaks to a community of agricultural trade and collaboration.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 95.3%
  • HTML 1.6%
  • JavaScript 1.3%
  • CSS 1.0%
  • C 0.6%
  • PowerShell 0.2%