An open API service indexing awesome lists of open source software.

https://github.com/szymonpoltorak/todoapp

Project for Modeling Database Application course on Warsaw University of Technology with aim to create an app communicating with database.
https://github.com/szymonpoltorak/todoapp

docker gradle java17 jwt mapstruct postgresql spring-boot

Last synced: 4 months ago
JSON representation

Project for Modeling Database Application course on Warsaw University of Technology with aim to create an app communicating with database.

Awesome Lists containing this project

README

          

# ToDo App

A simple ToDo app created for the academic course with aim of creating an app with frontend, backend and database. It has support for Https, PWA and is using reverse proxy.

## How to run it ?

1. I use RSA private and public keys to sign jwt tokens so you need to generate them.

* Use the commands below to generate private key and create public key:

```bash
openssl genpkey -algorithm RSA -out private.pem -pkeyopt rsa_keygen_bits:4096
openssl rsa -pubout -in private.pem -out public.pem
```

* Place them inside `todo-app-backend/src/resources/*.pem`

2. Application is using `ssl` so you need appropriate certificates. In `todo-app-nginx/ssl` there is a script `gen.sh` developed by me and my friend [Igor](https://github.com/igorkedzierawski). When you use it you should have `server.crt`, `server.key` and `server.p12`. First two should be placed in `todo-app-frontend/src/assets/ssl/` and `todo-app-nginx/ssl/` and `server.p12` in `todo-app-backend/src/main/resources/`. You can modify particular values in scripts variables.

## Technology Stack

1. Frontend
* Angular 16.2.0,
* Angular PWA,
* TypeScript 5.1.3,
* Angular Material 16.2.8,
* Scss 0.2.4,
* Rxjs 7.8.0,
* Html 5.

2. Backend
* Java 17,
* Spring Boot 3.14,
* Spring Data JPA,
* OAuth2,
* Jwt,
* Gradle Groovy,
* PostgreSQL,
* MapStruct,
* Lombok.

3. Others
* Docker,
* Nginx,
* Drawio.

## Diagrams

* Architecture diagram:


Architecture

* Database:


Database

## Screenshots

* Login


Login

* Register


Regsiter

* Forgot password


Login-Error

* Groups


groups

* Side Menu


side-menu

* Profile


profile

* Collaborators


collaborators

* Search


search


search-autocomplete


search-found

* Tasks


tasks


tasks-edit


tasks-date


tasks-priority


tasks-collaborators


finished-task

* Sessions


Login-Error

* Add socials


Login-Error