This project focuses on developing an application for managing the EverGreen company's platform. EverGreen specializes in managing AgroChains through advanced technologies such as IoT, Artificial Intelligence, Drones, and Sensors.
In this project, we apply the Domain-Driven Design (DDD) approach to structure the system's architecture. DDD focuses on understanding and solving complex business domain problems, allowing us to make informed design decisions and create software that effectively aligns with the company's objectives.
The architecture of this project is based on the microservices paradigm. Each component, such as the user service, roles, and modules, is implemented as an independent microservice. This promotes modularity, scalability, and enables agile development and deployment.
- Julian Franco
- Victor Muñoz
- David Roldán
This project is developed as part of the "Advanced Software Architectures" course. The aim is to acquire the necessary tools and knowledge to design and develop high-complexity software systems.
We have identified three key domain entities for this project:
-
User: Represents the users who interact with the EverGreen platform. Each user has roles and can access different modules.
-
Module: Refers to the specific functionalities and features that make up the platform. Each module has different associated access permissions.
-
Role: Defines the user roles or profiles, determining what actions they can perform and which modules they have access to.
These entities form the basis of the business logic and guide the structure and functionalities of our application.
To run the EverGreen Platform Management Project, follow these steps:
Before you begin, make sure you have the following installed on your system:
-
Navigate to the project's root directory in your terminal.
-
Create a virtual environment (optional but recommended):
python -m venv venv
- Activate the virtual environment (On macOS and Linux):
source venv/bin/activate
- Install the project dependencies using pip:
pip install -r requirements.txt
- Running the Backend
uvicorn main:app --reload
-
Accessing the Project You can access the project's API by opening a web browser or using API testing tools like Postman or curl. The API endpoints and documentation can be found at http://127.0.0.1:8000/docs for interactive documentation.
-
Stopping the Server To stop the server, press CTRL+C in the terminal where the server is running.
-
Deactivating the Virtual Environment When you're done working on the project, you can deactivate the virtual environment:
deactivate
Note: This README provides an overview of the project and its main aspects. As the project evolves, more details and additional documentation will be added as needed.