Skip to content

AgroAPI is a RESTful web service application that provides data and information related to poultry and dairy farming. In addition, it streamlines the industry’s supply chain by directly connecting farmers with buyers and farm input dealers, effectively eliminating middlemen (brokers) from the process.

Notifications You must be signed in to change notification settings

Daniel-Andarge/Agro-API

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to Agro-API 👋

Version Documentation Twitter: DanielAndarge

🏠 Homepage

Home


📚 Table of Contents

Expand to view
  1. About The Project
  2. Built With
  3. Getting Started
  4. Usage
  5. Screen Shots
  6. Author
  7. Show Your Support
  8. License

About The Project

AgroAPI is a RESTful web service designed to function as a backend solution for B2B applications in the poultry and dairy farming sectors. Developed as part of my capstone project for the ALX-Africa Software Engineering program, with a focus on backend development, AgroAPI enhances the agricultural supply chain by directly linking farmers with buyers and farm input providers. By eliminating intermediaries, the platform improves operational efficiency and promotes greater transparency across the industry.

Problem Statement:

Ethiopia's poultry and dairy farming sectors face significant inefficiencies due to a fragmented supply chain, reliance on middlemen, and limited access to reliable market data. Farmers often struggle to connect directly with buyers and farm input suppliers, resulting in reduced profit margins, inconsistent pricing, and delays in accessing essential resources. The lack of an integrated digital solution exacerbates these challenges, making it difficult for farmers to scale their operations or compete effectively in the market.

To address these issues, AgroAPI was developed as a backend service tailored to the Ethiopian poultry and dairy farming industries. By directly linking farmers with buyers and farm input suppliers through a B2B platform, AgroAPI aims to eliminate intermediaries, streamline supply chain operations, and improve access to real-time market data. This solution enhances transparency, increases operational efficiency, and helps Ethiopian farmers achieve sustainable growth in an increasingly competitive market.

NOTE:

The primary focus of this project is to implement best practices in back-end development, The front-end has been designed primarily to facilitate interaction with the back-end. However, it can be enhanced or improved as needed.

Project Highlights:

  • User Authentication: Secure sign-up and login with JSON Web Tokens for enhanced data protection.
  • Access Control: Role-based access control mechanisms for precise user privilege management.
  • Performance Optimization: Request rate limitations and caching strategies for improved efficiency.
  • Dynamic UI: User interface built with React.
  • Pagination: Server-side pagination for optimized data retrieval.
  • Thorough Documentation: Comprehensive API documentation for ease of use.

Technologies Utilized:

  • Node.js: For server-side JavaScript execution.
  • Express.js: Backend framework for robust API creation.
  • React: For creating interactive user interfaces.
  • Bootstrap: For responsive and attractive UI design.
  • Axios: For efficient API requests.
  • PostgreSQL: Relational database management.
  • Sequelize ORM: Seamless interaction with PostgreSQL.
  • JWT (JSON Web Token): Secure and stateless authentication.
  • SwaggerHub: Comprehensive API documentation.

Built With

  • React
  • Bootstrap
  • Express
  • Node
  • PostgreSQL
  • Sequelize ORM
  • JWT

Getting Started

Prerequisites

   . npm >= 8.6.0
   . node >= 18.0.0

   . Create a PostgreSQL database:
        - Database Name: agroapi
        - Username: admin
        - Password: admin

Installation

  1. Clone the repository:

    git clone https://github.com/Daniel-Andarge/Agro-API.git
  2. Install dependencies and start the backend server:

    cd backend
    npm install
    npm start
  3. Install dependencies and start the frontend server:

    cd client
    npm install
    npm start

Usage

Open the following ports on your browser:

Screen Shots

Home

Home

SignUp

SignUp

Login

Login

Admin SignUp From Postman

Admin SignUp

Admin Login

Admin Login Admin Home

Role-Based Profile Screenshot: User Information & Assigned Access Token

Admin Profile User Profile

Role-Based Content Screenshots: Customized Content Visibility by User Role

Admin Content Admin Moderator Content User Content

Database Screenshot: Password Encryption Implemented

Database

Show Your Support

If you find this project useful, give it a ⭐️!

Contributing

While this project is primarily a portfolio piece and not open for external contributions, feedback and suggestions are always welcome. If you have any thoughts or comments, reach out via email or LinkedIn.

License

This project is licensed under the MIT License.

Contact

Author

👤 Daniel Andarge


About

AgroAPI is a RESTful web service application that provides data and information related to poultry and dairy farming. In addition, it streamlines the industry’s supply chain by directly connecting farmers with buyers and farm input dealers, effectively eliminating middlemen (brokers) from the process.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published