AgriTrack is a backendSystem designed to streamline agricultural data management, certification, and tracking. The goal is to provide a scalable and secure foundation for applications in the agri-tech domain enabling farmers, cooperatives, and regulators to interact seamlessly.
AgriTrack follows a layered architecture based on Spring Boot's Service-Repository-Controller pattern.
- This will Exposes our RESTFUL APIs for frontend and third-party integrations.
- It will also Handles all network request/response
- This will Encapsulates our b/s logic and domain rules.
- It will also Manages workflow such as certification approval in future todos
- Here i hv used Java Records to create immutable, Data Transfer Objects.
- Just to Separate API payloads from internal domain models.
- Here i hv used MapStruck for automatic conversion btwn Entities and DTOs.
- Just to Reduce boilerplate code and ensure consistent transformations.
- This is my Data Persistence layer that uses Spring Data JPA.
- This manages transactions and database queries against PostgreSQL.
- For our PostgreSQL i settled on Flyway for migration and schema for versioning.
- Here i hv Containerized with Docker for consistency across environments. for indepth guiding on how to set this up kindly navigate to
docsfolder onto thedbfolder we hv more guidelines for setting up the environment.- Configurable environment via
application.yaml,compose.yaml, andDockerfile. - Get your deployed backend url here:
https://organic-certification-production.up.railway.app
- Configurable environment via
- Backend Framework: Java 17 + SpringBoot
- Database: PostgreSQL 17
- Database Migrations: Flyway
- API Testing: Postman and Swagger : checks docs - local-database for more insights
- Build Tool: Maven --
mvn clean compilemvn clean package -DskipTests - CI/CD: Railways automatic CICD ... Github Actions for Backup
- Cloud Deployment Ready: Railway .... AWS EC2 for Backup ..
