{"id":28291867,"url":"https://github.com/amxcoding/stayactive","last_synced_at":"2025-07-20T04:33:25.752Z","repository":{"id":39900768,"uuid":"469111422","full_name":"amxcoding/StayActive","owner":"amxcoding","description":"MVC ConsolUI application","archived":false,"fork":false,"pushed_at":"2025-05-08T06:15:07.000Z","size":10619,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-13T16:35:05.492Z","etag":null,"topics":["architecture","dbunit","design-patterns","jdbc","mockito","oop","solid","unit-testing"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amxcoding.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-03-12T14:49:22.000Z","updated_at":"2025-05-08T06:15:11.000Z","dependencies_parsed_at":"2022-09-02T16:26:43.170Z","dependency_job_id":null,"html_url":"https://github.com/amxcoding/StayActive","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/amxcoding/StayActive","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amxcoding%2FStayActive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amxcoding%2FStayActive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amxcoding%2FStayActive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amxcoding%2FStayActive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amxcoding","download_url":"https://codeload.github.com/amxcoding/StayActive/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amxcoding%2FStayActive/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266067280,"owners_count":23871324,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["architecture","dbunit","design-patterns","jdbc","mockito","oop","solid","unit-testing"],"created_at":"2025-05-22T04:12:14.237Z","updated_at":"2025-07-20T04:33:25.735Z","avatar_url":"https://github.com/amxcoding.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# StayActive\nThe goal of the project is to design a modular and extensible application using OOP principles, SOLID, design patterns and testing. To do this, we had to first make a functional and technical design of our application. \n\nThis application's purposes is to provide notifications in a certain time interval on which the user can act. If the user accepts the notification an exercises is shown that the user can do. The goal is to keep the user active once every hour.\n\n## Clean architecture\nBased on [CleanArchitecture](https://github.com/jasontaylordev/CleanArchitecture). The dependencies \nbetween the layers are as following:\n\n![4-tier](assets/n-tier.png)\n\n- ### [Application layer](Application)\nThe application layer depends only on the domain layer. Furthermore, it contains all the application logic. The application\nlayer contains the interfaces and logic what are used throughout the whole application. \n- ### [Domain layer](Domain)\nThe domain layer has no dependency on the other layers. It contains all entities, enums, exceptions, interfaces, \ntypes and logic specific to the domain layer.\n- ### [ConsolUI layer](ConsoleUI)\nFor the console UI I have used the MVC design pattern. The console UI  depends on the infrastructure layer through dependency \ninjection.\n- ### [Infrastructure layer](Infrastructure)\nI have used a template pattern for the database command and query. To access the database layer\nI make use of DAOs and Repositories.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famxcoding%2Fstayactive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famxcoding%2Fstayactive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famxcoding%2Fstayactive/lists"}