/TheDruidsHarvest

this is a modern backend system designed for managing a traditional greengrocer. Built with .NET, this project serves as a practical exploration of backend development, DevOps automation, and observability practices (:

Primary LanguageC#

The Druid's Harvest 🌱 - WIP

The Druid's Harvest API is a .NET-based web API for managing a greengrocer, designed for study purposes. It provides endpoints for adding, retrieving, updating, and deleting fruits in a inventory, serves as a learning resource for understanding API development using .NET technologies.

This repository has a funny origin. Years ago, I was just starting my career as a developer at a company full of amazing people. It was there that I took my first steps in programming, and one of the projects suggested for practice was a greengrocer system. At the time, my friend and I, who also worked there, were quite intimidated by the task, but we managed to pull it off. Now, almost three years later, I’m excited to rebuild this system with everything I’ve learned since then.

Features 💻

The Druid's Harvest API will include the following features:

  • CRUD (Create, Read, Update, Delete) operations for fruits and vegetables in a greengrocer.
  • Token-based authentication and authorization for securing API endpoints.
  • Azure APIM
  • Swagger documentation for easy API exploration and testing.
  • Follows RESTful API design principles.
  • Utilizes best practices for .NET development, including dependency injection, data access with Entity Framework Core, and exception handling.
  • DevOps pipeline
  • Observability
  • Unit tests
  • SonarQube

Installation 🛠

To install and run The Druid's Harvest API, follow these steps:

  1. Clone the repository to your local machine using the following command:

[image here]

  1. Change to the directory where The Druid's Harvest API is cloned:

[image here]

  1. Install the required dependencies by running the following command:

[image here]

  1. Build the solution by running the following command

[image here]

  1. Run the API using the following command:

[image here]

  1. The API will be hosted at https://localhost:5001 by default. You can access it using a web browser or a tool like Postman for API testing.

Usage ✏️

The Druid's Harvest API provides the following endpoints for managing a greengrocer:

GET /api/fruits: Retrieves all fruits in the inventory.

GET /api/fruits/{id}: Retrieves a specific fruit by its ID.

POST /api/fruits: Adds a new fruit to the inventory.

PUT /api/fruits/{id}: Updates an existing fruit by its ID.

DELETE /api/fruits/{id}: Deletes a fruit from the inventory by its ID.

Contributing 💬

This repository is intended for study purposes only and is not currently open for external contributions.

Contact

If you have any questions or suggestions about the The Druid's Harvest API, please feel free to contact me. I appreciate your feedback and would be happy to assist you 💚