Skip to content

API that will provide endpoints to manage birthdays and notify them.

Notifications You must be signed in to change notification settings

davidrezende/niver-api

Repository files navigation

Niver API

Build Status

SonarCloud

NiverDeQuem Platform. Manage and notify the birthdays of people who are part of a group.

Api developed in kotlin with Spring Framework. Used Postgres relational database

To frontend web access Niver-Web

Demo ( Production )

NiverDeQuem is available at here.

Architecture

Diagram Architecture NiverDeQuem

Workflow Pipeline

The project uses github actions to run a build and CI/CD pipeline and SonarCloud integration.

.github/workflows/build.yml

Tech

  • Spring Scheduled Tasks with cron
  • Spring Mail ( SMTP )
  • Spring Data JPA
  • Spring Security with JWT
  • Flyway Migration
  • OpenApi3
  • Docker & Docker Compose
  • Postgres Database

Features

  • Register, change, view and delete a person
  • Register, change, view and delete a group
  • Add or remove person from group
  • Create or recreate an invite for a group. The invitation is sent by URL link with a UUID identifier.
  • Shows the list of birthdays by month. (Used by frontend in calendar component)
  • Notifies group members of birthdays of the month and birthdays of the day by email.

Run

NiverApi requires Docker and Docker Compose

Run docker-compose.yml

mvn clean package
docker-compose up