{"id":23043042,"url":"https://github.com/szymonpoltorak/todoapp","last_synced_at":"2026-04-09T02:31:32.704Z","repository":{"id":199103816,"uuid":"702148862","full_name":"szymonpoltorak/ToDoApp","owner":"szymonpoltorak","description":"Project for Modeling Database Application course on Warsaw University of Technology with aim to create an app communicating with database.","archived":false,"fork":false,"pushed_at":"2024-02-23T12:00:46.000Z","size":1372,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-03T01:19:23.308Z","etag":null,"topics":["docker","gradle","java17","jwt","mapstruct","postgresql","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/szymonpoltorak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-08T16:31:33.000Z","updated_at":"2023-10-08T16:50:50.000Z","dependencies_parsed_at":"2024-02-07T21:33:26.289Z","dependency_job_id":"7891e37c-8156-4360-beb0-343a3918211f","html_url":"https://github.com/szymonpoltorak/ToDoApp","commit_stats":null,"previous_names":["szymonpoltorak/todoapp"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/szymonpoltorak/ToDoApp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szymonpoltorak%2FToDoApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szymonpoltorak%2FToDoApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szymonpoltorak%2FToDoApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szymonpoltorak%2FToDoApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/szymonpoltorak","download_url":"https://codeload.github.com/szymonpoltorak/ToDoApp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/szymonpoltorak%2FToDoApp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31582599,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","gradle","java17","jwt","mapstruct","postgresql","spring-boot"],"created_at":"2024-12-15T20:39:01.596Z","updated_at":"2026-04-09T02:31:32.628Z","avatar_url":"https://github.com/szymonpoltorak.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ToDo App\n\nA 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.\n\n## How to run it ?\n\n1. I use RSA private and public keys to sign jwt tokens so you need to generate them.\n\n* Use the commands below to generate private key and create public key:\n\n```bash\nopenssl genpkey -algorithm RSA -out private.pem -pkeyopt rsa_keygen_bits:4096\nopenssl rsa -pubout -in private.pem -out public.pem\n```\n\n* Place them inside `todo-app-backend/src/resources/*.pem`\n\n2. 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.\n\n## Technology Stack\n\n1. Frontend\n*\tAngular 16.2.0,\n*   Angular PWA,\n*\tTypeScript 5.1.3,\n*\tAngular Material 16.2.8,\n*\tScss 0.2.4,\n*\tRxjs 7.8.0,\n*\tHtml 5.\n\n2. Backend\n*\tJava 17,\n*\tSpring Boot 3.14,\n*\tSpring Data JPA,\n*   OAuth2,\n*   Jwt,\n*\tGradle Groovy,\n*\tPostgreSQL,\n*\tMapStruct,\n*\tLombok.\n\n3. Others\n*\tDocker,\n*\tNginx,\n*\tDrawio.\n\n## Diagrams\n\n* Architecture diagram:\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"docs/architecture.png\" alt=\"Architecture\"\u003e\n\u003c/div\u003e\n\n* Database:\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"docs/db.drawio.png\" alt=\"Database\"\u003e\n\u003c/div\u003e\n\n## Screenshots\n\n* Login\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/1.png\" alt=\"Login\"\u003e\n\u003c/div\u003e\n\n* Register\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/2.png\" alt=\"Regsiter\"\u003e\n\u003c/div\u003e\n\n* Forgot password\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/3.png\" alt=\"Login-Error\"\u003e\n\u003c/div\u003e\n\n* Groups\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/groups.png\" alt=\"groups\"\u003e\n\u003c/div\u003e\n\n* Side Menu\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/side-menu.png\" alt=\"side-menu\"\u003e\n\u003c/div\u003e\n\n* Profile\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/profile.png\" alt=\"profile\"\u003e\n\u003c/div\u003e\n\n* Collaborators\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/collaborators.png\" alt=\"collaborators\"\u003e\n\u003c/div\u003e\n\n* Search\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/search.png\" alt=\"search\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/search-autocomplete.png\" alt=\"search-autocomplete\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/search-found.png\" alt=\"search-found\"\u003e\n\u003c/div\u003e\n\n* Tasks\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/tasks.png\" alt=\"tasks\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/tasks-edit.png\" alt=\"tasks-edit\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/tasks-date.png\" alt=\"tasks-date\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/tasks-priority.png\" alt=\"tasks-priority\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/tasks-collaborators.png\" alt=\"tasks-collaborators\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/finished-task.png\" alt=\"finished-task\"\u003e\n\u003c/div\u003e\n\n* Sessions\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/7.png\" alt=\"Login-Error\"\u003e\n\u003c/div\u003e\n\n* Add socials\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"screenshots/8.png\" alt=\"Login-Error\"\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszymonpoltorak%2Ftodoapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fszymonpoltorak%2Ftodoapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fszymonpoltorak%2Ftodoapp/lists"}