{"id":20282779,"url":"https://github.com/sentrionic/valkyrieapp","last_synced_at":"2025-10-12T01:44:31.977Z","repository":{"id":40497091,"uuid":"351808444","full_name":"sentrionic/ValkyrieApp","owner":"sentrionic","description":"The Flutter app for https://valkyrieapp.xyz","archived":false,"fork":false,"pushed_at":"2023-09-21T16:24:33.000Z","size":16041,"stargazers_count":43,"open_issues_count":1,"forks_count":10,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-30T20:32:28.338Z","etag":null,"topics":["bloc","dart","ddd-architecture","flutter","fullstack","websocket"],"latest_commit_sha":null,"homepage":"https://github.com/sentrionic/Valkyrie","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sentrionic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2021-03-26T14:26:12.000Z","updated_at":"2025-03-28T12:12:16.000Z","dependencies_parsed_at":"2024-11-12T05:30:58.335Z","dependency_job_id":"86ea1c52-89d1-468d-809f-1fb9c10691d7","html_url":"https://github.com/sentrionic/ValkyrieApp","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/sentrionic/ValkyrieApp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentrionic%2FValkyrieApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentrionic%2FValkyrieApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentrionic%2FValkyrieApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentrionic%2FValkyrieApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sentrionic","download_url":"https://codeload.github.com/sentrionic/ValkyrieApp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sentrionic%2FValkyrieApp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279009794,"owners_count":26084648,"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","status":"online","status_checked_at":"2025-10-11T02:00:06.511Z","response_time":55,"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":["bloc","dart","ddd-architecture","flutter","fullstack","websocket"],"created_at":"2024-11-14T14:11:41.851Z","updated_at":"2025-10-12T01:44:31.962Z","avatar_url":"https://github.com/sentrionic.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ValkyrieApp\n\nThe mobile application for [Valkyrie](https://github.com/sentrionic/Valkyrie) written in Flutter.\n\nFor the APK check out the [Release tab](https://github.com/sentrionic/ValkyrieApp/releases).\n\n## Screenshots\n\n\u003ctable\u003e\u003ctr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"./assets/github/auth.gif\" width=\"180\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"./assets/github/account.jpg\" width=\"180\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"./assets/github/friends.gif\" width=\"180\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"./assets/github/channels.gif\" width=\"180\"\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"./assets/github/chat.gif\" width=\"180\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"./assets/github/guilds.gif\" width=\"180\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"./assets/github/directmessage.gif\" width=\"180\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"./assets/github/notifications.gif\" width=\"180\"\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003c/table\u003e\n\n## Stack\n\n- Flutter\n\n- [Bloc and Cubit](https://bloclibrary.dev/#/) for state management\n\n- [get_it](https://pub.dev/packages/get_it) for dependency injection\n\n- REST for data fetching and websockets for real time events\n\nFor all features check out the parent [repository](https://github.com/sentrionic/Valkyrie).\nFor the socket.io version check out the `v1` branch.\n\nThe architecture of this app is based on Reso Coder's [Domain Driven Design Principles](https://resocoder.com/2020/03/09/flutter-firebase-ddd-course-1-domain-driven-design-principles/):\n\n![DDD architecture](https://resocoder.com/wp-content/uploads/2020/03/DDD-Flutter-Diagram-v3.svg)\n\n\u003e **Application** contains all the Use Cases\n\n\u003e **Domain** contains the business logic (entities and validation)\n\n\u003e **Infrastructure** contains the repositories and network calls as well as Data Transfer Objects\n\n\u003e **Presentation** contains all the UI components and the web sockets\n\n## Installation\n\nThis app was created and tested on `Flutter 3.0.0` and `Dart 2.17.0` .\n\n```\ngit clone https://github.com/sentrionic/ValkyrieApp.git\ncd ValkyrieApp\nflutter packages get\n```\n\nFor debug mode run `flutter run` and for production mode run `flutter run --release`\n\nTo run the code generator using `freezed`, run `flutter pub run build_runner watch --delete-conflicting-outputs`.\n\nIf you want to use your own server you will need to change the `BaseUrl` in `InjectableModule`.\n\nIf said server runs locally you will also need to add `android:usesCleartextTraffic=\"true\"` to the Android manifest.\n\n**Note**: Instead of `localhost` you need to specify your `IPv4 Address` (e.g. `192.168.2.xxx`), otherwise the HttpClient won't be able to connect to the server.\n\n## Tests\n\nTests were written for all Use Cases in the `Application` directory and the repositories and DTOs in the `Infrastructure` directory.\n\nTo run all tests run `flutter test`\n\n## Additional Information\n\nThis app was tested and is working on Android and the general design is based on Discord's Android version.\n\nThe iOS version will need additional configuration done to the packages to run.\nAs I do not own a Mac I cannot work on it.\n\n## Credits\n\n[Reso Coder](https://resocoder.com/): This app's structure is based on his DDD tutorial and the tests are based on his TDD tutorial.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsentrionic%2Fvalkyrieapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsentrionic%2Fvalkyrieapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsentrionic%2Fvalkyrieapp/lists"}