Skip to content

lfneves/tech-challenge-hackathon

Repository files navigation

MVP - Tech challenge hackathon-ws

💡 Requirements

Getting Started

# Get the latest version

git clone https://github.com/lfneves/tech-challenge-hackathon.git

Prerequisites

Check versions:

  • Java 17+

    java --version
  • Docker

    docker -v
  • Docker Compose

    docker-compose --version

Installation

This is an example of how to use the software and how to install it.

Build artifact project first

./gradlew clean bootjar

Docker

In the main project directory:

Docker build and start applications:

$ docker-compose up --build

To recreate the application in case of problems, use the command:

$ docker-compose down


Punch The Clock (Time Registration System)

This document provides an overview of the architecture of the Punch The Clock system, designed to support user authentication, time registration, record viewing, and the generation of monthly reports.

System Architecture

The architecture is designed with a focus on performance, scalability, availability, security, data integrity, maintainability, and resilience. It utilizes AWS services to ensure scalability and high availability, and MongoDB Atlas as a cloud-based database solution.

Architecture Components

Alt text

Client

  • Description: Users interact with the system through a client (browser, mobile app, etc.).
  • Responsibility: Initiate authentication requests, time registration, and record viewing.

API Gateway

  • Description: An AWS service that acts as an entry point for backend requests.
  • Responsibility: Route requests to corresponding services, manage traffic, authorization, and monitoring.

ECS Fargate

  • Description: A container orchestration service that runs and manages containerized applications.
  • Responsibility: Host and scale backend services, including authentication, time registration, and viewing.

MongoDB Atlas

  • Description: Cloud-based MongoDB database service.
  • Responsibility: Securely store and manage user data and time registration records.

Security

The system uses best security practices, including:

  • Secure authentication and session management.
  • Encryption in transit and at rest.
  • Policy-based access control.

Scalability and Performance

Designed to handle high workloads, the system:

  • Automatically scales with ECS Fargate to meet variable demands.
  • Distributes traffic evenly with API Gateway and load balancing.

Update Architecture Components Fase 2 (V2)

ElastiCache (Redis)

  • Description: In-memory caching service.
  • Responsibility: Speed up data access for frequently read data and reduce database load.

AWS SQS

  • Description: Message queuing service to decouple and scale microservices, distributed systems, and serverless applications.
  • Responsibility: Manage task queues for asynchronous tasks, such as report generation.

AWS Lambda

  • Description: A computing service that lets you run code without provisioning or managing servers.

Architecture Components Fase 2

Alt text

Conclusion

This system is architected to provide a robust, secure, and scalable solution for time registration, ensuring business requirements are efficiently met.


Distributed under the MIT License. See LICENSE.txt for more information.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages