Skip to content

This is a playground project that I will maintain in my spare time. I want to use it to create a journey to practice new approaches and perfect the known ones.

Notifications You must be signed in to change notification settings

gabriel-rcpereira/votingapp-v1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VoteApp

The application registers pools and users votes as well as returns the pools' result.

Journey

This is a playground project that I will maintain in my spare time. I want to use it to create a journey to practice new approaches and perfect the known ones.

Stack - Why did I choose such a tooling?

References

Phases

#1 Stage - POC

The main goal while creating the first version is to have a POC at the end. That's the opportunity to understand the domain, user behavior while using the application and what we can do better in the next phase. Here is the V1.

At this moment, only the main needs were addressed, in other words, the Non-Functional Requirements and the Application Design were left aside. For now, only the feasibility matters.

I created a few Integrated Tests. The tests provide a quick way to validate everything at once as the application is still changing.

#2 Stage

Requirements

In addition to the requirements listed below, I'd like to give a chance to AI as a copilot ;)

  • Remove Pool Options Gateway
  • Validate the domain and endpoint attributes according to their needs
  • Replace the current exceptions with customized ones
  • Handle the Pool and Pool Options according to the relation Aggregate and Aggregate Root
    • I dropped this requirement. How Spring Data JDBC handles the aggregate and root relationship doesn't address the application requirements. In short, the aggregated items are deleted and recreated whenever it changes.
  • Implement the controller advice and define a well-structured error response.\
    • The error message must contain the error code and details.
    • The http status response should follow the RestFul best practices.
  • Implement the unit tests
    • I postponed this task. I implemented some unit tests by using AWS Code Whisperer and I got surprised how it incredibly works well.
      BTW, I'm still using the free version.
  • Refactor the Integration Tests

References

#3 Stage

Requirements

  • Provision Postgres with Docker
  • Create database tables with Flyway/Liquibase
  • Create service image, docker compose, etc. Set the same settings for the resource as the backend contest(rinha de backend)
  • Create Performance Tests

References

About

This is a playground project that I will maintain in my spare time. I want to use it to create a journey to practice new approaches and perfect the known ones.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published