/Agro-API

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.

Primary LanguageJavaScript

Welcome to Agro-API 👋

Version Documentation Twitter: DanielAndarge

🏠 Homepage Home

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Screen Shots
  5. Author
  6. Show your support
  7. License

About The Project

AgroAPI stands as a testament to my expertise in backend development, achieved through the Back-End Specialization at ALX Software Engineering program. This comprehensive portfolio project serves as a robust backend system (API) specifically designed to handle and deliver data pertaining to Poultry and Dairy Farming.

Project Highlights:

User Authentication: Implemented a secure and seamless user sign-up and login process using JSON Web Tokens, ensuring enhanced data protection.

Access Control: Employed role-based access control mechanisms through API Authentication and Authorization, allowing precise control over user privileges.

Performance Optimization: Incorporated request rate limitations and caching strategies for improved system efficiency and responsiveness.

User Interface: Developed a dynamic user interface using React to enhance the overall user experience.

Pagination: Implemented server-side pagination for optimized data presentation and retrieval.

Documentation: Thorough API documentation ensures clarity and ease of use for developers and stakeholders.

Technologies Utilized:

Node.js: Leveraged for server-side JavaScript execution.

Express.js: The backend framework facilitating the creation of robust APIs.

React: Utilized for crafting engaging and responsive user interfaces.

BootStrap: Employed to enhance UI design and responsiveness.

Axios: A promise-based HTTP client for making efficient API requests.

PostgreSQL: The relational database used to store and manage data.

Sequelize ORM: Ensured seamless interaction with the PostgreSQL database.

JWT (JSON Web Token): Implemented for secure and stateless authentication.

SwaggerHub: Used for comprehensive API documentation.

This project showcases my commitment to industry best practices in backend development and serves as a practical demonstration of my skills in building secure, efficient, and well-documented APIs.

back to top

Built With

  • React
  • Bootstrap
  • Express
  • Node
  • PostgreSQL
  • SequilizeORM
  • JWT

back to top

Getting Started

Prerequisites

   . npm >= 8.6.0
   . node >= 18.0.0

   . Create database in PostgreSQL
        Database Name: agroapi
        username: admin
        password: admin

Installation

  1. Clone the repo

    git clone https://github.com/Daniel-Andarge/Agro-API.git
  2. Install NPM packages

    cd backend
       npm install
       npm start
    
    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

SignUp

Admin Login

Login

Admin Home

Role Based Profile ( token is sent to user for authentication & authorization )

Admin Profile

User Profile

Role Based Content

Admin Content

Admin Moderator Content

User Content

Author

👤 Daniel Andarge

back to top

Show your support

Give a ⭐️ if this project helped you!

📝 License

Copyright © 2023 Daniel Andarge.