{"id":18553866,"url":"https://github.com/marcobendinelli/hangout-flutter-mobile-app","last_synced_at":"2026-04-15T16:02:30.860Z","repository":{"id":235448808,"uuid":"790267920","full_name":"MarcoBendinelli/HangOut-Flutter-Mobile-App","owner":"MarcoBendinelli","description":"HangOut mobile application written using the Flutter framework","archived":false,"fork":false,"pushed_at":"2024-04-23T08:28:47.000Z","size":25734,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-26T08:42:51.508Z","etag":null,"topics":["dart","firebase","flutter","mobile-app"],"latest_commit_sha":null,"homepage":"","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/MarcoBendinelli.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":"2024-04-22T15:13:27.000Z","updated_at":"2024-04-23T08:28:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"9de66b94-80d6-483d-8671-189fed35697f","html_url":"https://github.com/MarcoBendinelli/HangOut-Flutter-Mobile-App","commit_stats":null,"previous_names":["marcobendinelli/hangout-flutter-mobile-app"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcoBendinelli%2FHangOut-Flutter-Mobile-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcoBendinelli%2FHangOut-Flutter-Mobile-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcoBendinelli%2FHangOut-Flutter-Mobile-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MarcoBendinelli%2FHangOut-Flutter-Mobile-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MarcoBendinelli","download_url":"https://codeload.github.com/MarcoBendinelli/HangOut-Flutter-Mobile-App/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239278543,"owners_count":19612329,"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":["dart","firebase","flutter","mobile-app"],"created_at":"2024-11-06T21:18:39.045Z","updated_at":"2025-11-01T10:30:24.469Z","avatar_url":"https://github.com/MarcoBendinelli.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HangOut :iphone:\n[![codecov](https://codecov.io/gh/MarcoBendinelli/HangOutApp/branch/main/graph/badge.svg?token=HGMS6OM6N9)](https://codecov.io/gh/MarcoBendinelli/HangOutApp)\n\nHangOut is a modern mobile app that revolutionizes socializing. It offers a seamless user experience with four main pages: _My events_, _Explore_, _My groups_, and _Profile_. Users can discover events and groups based on specific interests, manage their activities, and personalize their account. HangOut also includes interactive pop-ups for viewing detailed information, accessing user profiles, creating events and groups, and managing notifications.\n\n\nThe application, developed by me and [Matteo](https://github.com/Beltrante), follows a **CI/CD** process thanks to Github actions and is currently available [here](https://play.google.com/store/apps/details?id=com.bendinelli.beltrante.hang_out_app). Elisa, an exceptional designer, contributes to the UI/UX. Explore her amazing work on her website [here](http://elisaciliberti.it/).\n\n## Design Document\n\nCheck out the [Design Document](/design_document/HO_Design_Document.pdf) to learn more! This document includes (mainly) the following information:\n\n* Key features of HangOut, including unified sign-in options, group and event exploration, creation and customization of groups and events, efficient organization, flexible modifications, chat functionality, profile and app settings management, and unified notifications management\n* Use Cases illustrating various scenarios and interactions users may have with the application\n* Wireframes providing visual representations of the app's interface design for both phone and tablet devices\n* The hierarchy and flow of navigation\n* Supported platforms\n* Technologies and frameworks used in the development\n* The high-level system architecture, component interaction, and design patterns utilized in the app\n* Database services used\n* The third-party APIs integrated\n* Details strategies employed to optimize the performance\n* Testing: the unit, widget, and integration testing process\n* How code branches are organized\n* Continuous integration and continuous deployment process.\n\n## Phone Navigation Graph\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"800\" src=\"ho_images/phone_navigation_graph.svg\" alt=\"phone_navigation_Graph\"\u003e\n\u003c/p\u003e\n\n## Phone Screens\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"750\" src=\"ho_images/phone/screens_1.png\" alt=\"screens_1\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"750\" src=\"ho_images/phone/screens_2.png\" alt=\"screens_2\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"750\" src=\"ho_images/phone/screens_3.png\" alt=\"screens_3\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"750\" src=\"ho_images/phone/screens_4.png\" alt=\"screens_4\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"750\" src=\"ho_images/phone/screens_5.png\" alt=\"screens_5\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"750\" src=\"ho_images/phone/screens_6.png\" alt=\"screens_6\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"750\" src=\"ho_images/phone/screens_7.png\" alt=\"screens_7\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"750\" src=\"ho_images/phone/screens_8.png\" alt=\"screens_8\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"750\" src=\"ho_images/phone/screens_9.png\" alt=\"screens_9\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"750\" src=\"ho_images/phone/screens_10.png\" alt=\"screens_10\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"750\" src=\"ho_images/phone/screens_11.png\" alt=\"screens_11\"\u003e\n\u003c/p\u003e\n\n## Tablet Screens\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"600\" src=\"ho_images/tablet/1.PNG\" alt=\"1\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"600\" src=\"ho_images/tablet/2.PNG\" alt=\"2\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"600\" src=\"ho_images/tablet/3.PNG\" alt=\"3\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"600\" src=\"ho_images/tablet/4.PNG\" alt=\"4\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"600\" src=\"ho_images/tablet/5.PNG\" alt=\"5\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"600\" src=\"ho_images/tablet/6.PNG\" alt=\"6\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"600\" src=\"ho_images/tablet/7.PNG\" alt=\"7\"\u003e\n\u003c/p\u003e\n\n## Test Coverage\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"750\" src=\"ho_images/test_coverage.svg\" alt=\"test_coverage\"\u003e\n\u003c/p\u003e\n\n## Additional Information\n\n### Firebase Config\n* code/android/app : your google-services.json\n* code/lib : your firebase_options.dart\n* code/ios : your firebase_app_id_file.json\n* code/ios : your GoogleService-Info.plist\n* code/ios/Runner/Info.plist : your keys in the ```m4rc0``` section\n\n### Run Integration Tests:\n\n* ```firebase emulators:start```\n* ```flutter test integration_test/app_test.dart```\n* or to all in one with screenshots\n* ```firebase emulators:exec \"flutter drive --driver=test_driver/integration_test.dart --target=integration_test/app_test.dart\"```\n\n### For CI\n* Create ```key.properties``` and ```key.jks``` following the Flutter guide and put them in a ```key_files``` folder\n* Zip it to ```key_files.zip```, encrypt it with ```gpg --symmetric --cipher-algo AES256 key_files.zip```, and insert a password to be used later\n* Put encrypted file in the Android folder and save the password in ```secrets.ANDROID_KEYS_SECRET_PASSPHRASE```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcobendinelli%2Fhangout-flutter-mobile-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmarcobendinelli%2Fhangout-flutter-mobile-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmarcobendinelli%2Fhangout-flutter-mobile-app/lists"}