Decapay is a digital product that allows users to track and manage their finances.
- Create and Manage Budgets
- Log and manage Expenses.
- Track expenses.
- Language/Framework: Java/Spring Boot
- Flyway -Database migration
- JUnit - Unit and Integration testing
- AWS SMTP -Email notification service
- Postgres -RDBMS
- Github Actions
- Docker
- AWS Elastic Container Repository(ECR)
- AWS Elastic Container Service (ECS)
From the command line:
$ mvn clean install
From the command line:
$ mvn spring-boot:run
From the IDE:
Run the main method in the com.decagon.decapay.DecapayApplication class from your IDE.
-
Create application-dev.properties file in src/main/resources folder,
-
Create your database,
Add the followings in application-dev file:
spring.datasource.driverClassName = org.postgresql.Driver
spring.datasource.url = jdbc:postgresql://localhost:5432/{your_database_name}
spring.datasource.username = {your_database_username}
spring.datasource.password = {your_database_password}
Add the followings in application-dev file:
spring.mail.host = {your_email_host}
spring.mail.username = {your_email_username}
spring.mail.password = {your_email_password}
spring.mail.properties.mail.transport.protocol = {your_email_protocol}
spring.mail.properties.mail.smtp.port = {your_email_port}
spring.mail.properties.mail.smtp.auth = {true|false}
spring.mail.properties.mail.smtp.starttls.enable = {true|false}
spring.mail.properties.mail.smtp.starttls.required = {true|false}
$ docker-compose run --service-ports app -d
To speed up the Project development, a docker-compose
file has been provided that
will run the application and a PostgreSQL instance,
which you can start with the following command: docker-compose up
. You can connect to
this instance from your application with the following values:
JDBC URL = jdbc:postgresql://localhost:5432/decapay
Username = decapay
Password = password
From the command line:
$ mvn test
From the IDE:
Run the test classes in the com.decagon.decapay package within the test package from your IDE.
Api documentation available at : http://localhost:5000/swagger-ui.html