Skip to content

Web application designed to aggregate, visualize, and manage nationwide events across Argentina. Featuring a Microservices architecture built with Java, Spring Boot, and Hibernate, emphasizing Clean Architecture.

Notifications You must be signed in to change notification settings

faustorod1/MetaMapa

Repository files navigation

MetaMapa: Sistema de gestión de mapeos colaborativos

📌 Project Overview

MetaMapa is a web application designed to aggregate, visualize, and strategically manage nationwide events across Argentina. The platform serves as a centralized hub for large-scale geographic data, allowing users to access real-time insights through an interactive geographic interface.

The system was engineered with a focus on scalability and modularity, utilizing a Microservices architecture to decouple core business domains such as user management, statistics, and event aggregation.

🏗️ Architectural Focus

The system is built following Microservices and Clean Architecture principles, ensuring a clear separation of concerns between domain logic, application rules, and infrastructure. The project implements a Layered Architecture (Controllers, Services, Domein Models and Repositories).

🛠️ Tech Stack

  • Backend: Java 17, Spring Boot.
  • Persistence: MySQL and Hibernate / JPA.
  • Quality Assurance and Tooling: JUnit 5, Mockito, Maven, Lombok.
  • Architecture: Microservices with shared Commons Library.
  • Security: Stateless authentication using JWT (JSON Web Tokens) and Spring Security.
  • Multimedia: Image management and cloud storage integration with Cloudinary API.
  • Frontend: Server-side rendering with Thymeleaf.

🔧 API

  • RESTful API Provider: Each microservice exposes a comprehensive REST API, allowing for seamless integration with frontend clients and potential third-party consumers.
  • External API Consumption: The platform enriches its data by consuming external RESTful services, such as other MetaMapa instances, geographic data providers and cloud media management.
  • Inter-Service Communication: Microservices communicate with each other using REST calls, ensuring a decoupled and scalable network architecture.

👥 Contributors

  • Juan Fernandez
  • Juan Pablo Montemarani
  • Manuel Rafael
  • Fausto Rodríguez
  • Juan Tarducci

📄 Documentation & Requirements

Detailed project specifications, business rules, and functional requirements can be found in the dedicated documentation folder: Project Specifications & Requirements

📸 Demo Showcase

carga.masiva.de.hechos.mediante.CSV.mp4

⚠️ This project template is designed for:

  • Java 17. While the project does not explicitly limit it, the mvn verify command will not function with older Java versions.
  • JUnit 5. JUnit version 5 is the latest framework version and introduces several differences compared to the "classic" version (JUnit 4). For further details, see:
  • Maven 3.8.1 or higher.

🧪 Running Tests

mvn test

🔍 Exhaustive Project Validation

mvn clean verify

This command will perform the following actions:

  1. Run all tests.
  2. Validate formatting conventions using Checkstyle.
  3. Detect code smells (specific patterns of poor design).
  4. Validate project coverage (to ensure most of the code is tested).

About

Web application designed to aggregate, visualize, and manage nationwide events across Argentina. Featuring a Microservices architecture built with Java, Spring Boot, and Hibernate, emphasizing Clean Architecture.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 8