Loading repository data…
Loading repository data…
lucalain / repository
This repository contains the project for the Design and Implementation of Mobile Applications (DIMA) course at Polimi A.Y. 2023-2024. The goal was to design and implement a multi-platform application using Flutter. The resulting app, AgorApp, connects users with shared interests.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
This repository contains the project developed for the Design and Implementation of Mobile Applications (DIMA) course at Politecnico di Milano (A.Y. 2023–2024). The goal of the project is to design and implement a cross-platform mobile application using one of the technologies introduced during the course. For this project, we chose Flutter, a framework developed by Google to create cross-platform applications. Course Instructor: Prof. Luciano Baresi
AgorApp is a versatile social application designed to bring together individuals with common interests across different categories. Users can join groups focused on specific topics, facilitating meaningful interactions and exchanges of ideas. Beyond its chat functionalities, AgorApp offers comprehensive event management features and keeps users informed by providing news updates related to their areas of interest.
This repository is structured as follows:
agorapp/ – Contains the full source code of the AgorApp mobile application.
docs/ – Includes the Design Document and slides.
images/ – Stores all images used in this README.
🔐 Login & Registration: Sign in using your email or Google Single Sign-On (SSO).
📰 Search News: Find relevant news articles by entering keywords.
👥 Create/Edit Groups: Customize groups with names, descriptions, categories, and profile images.
📅 Create/Edit Events: Organize and manage events seamlessly.
📤 Share News & Events: Easily share content with your groups or followers.
➕➖ Follow/Unfollow Users: Manage your connections and stay updated.
👥 Join/Leave Groups: Join communities or leave them as needed.
📬 Subscribe/Unsubscribe Events: Stay updated on events or opt out anytime.
💬 Chatting: Enjoy group and private messaging features.
🖼️ View Content: Browse shared news, events, and images within chats.
🛠️ Message Actions: Delete, copy, or check read receipts for messages.
🔔 Manage Notifications: Choose to enable or disable notifications based on your preferences.
📆 View Calendar: Browse a calendar with events joined or created.
🙋 User Profiles: View and update your own profile, or explore other profiles.
⚙️ Profile Settings: Update profile details or delete your account.
🗞️ Push News Notifications: Receive alerts on news related to your interests.
AgorApp is developed with Flutter, an open-source framework created by Google that allows for the development of natively compiled, cross-platform applications using a single codebase. The application follows a Model-View-Controller (MVC) design pattern, which provides a clear separation of concerns between different components of the application.
🔐 Firebase Authentication & Google Sign-In: Secure user authentication and seamless login via Google.
📩 Firebase Cloud Functions: Manage and deliver push notifications to users.
📰 News API: Access and deliver curated, up-to-date news stories.
🗺️ OpenStreetMaps & GraphHopper APIs: Provide location services and map functionality.
🔔 Firebase Cloud Messaging: Enable real-time push notifications for enhanced user engagement.
The user interface of AgorApp is designed to be intuitive and user-friendly. The application adapts to different screen sizes to enhance usability and improve the overall look and feel.
Key screens include:
📸 More screenshots of the app are available in the Design Document.
The application satisfies the following requirements:
The testing strategy for the application comprises three distinct types:
The following table summarizes the test coverage achieved when running all tests together:
| Test Type | Coverage |
|---|---|
| Unit Tests | 97% |
| Widget Tests | 93% |
| Integration Tests | 90.2% |
Planned improvements for AgorApp include:
The development of the application required the use of some APIs. The keys used are not present in the repository and they need to be regenerated. The APIs key can be generated from the following links:
The backend of the application is hosted on Firebase. The configuration files are empty and need to be regenerated.
| Name | GitHub | |
|---|---|---|
| Luca Lain | luca.lain@mail.polimi.it | @lucalain |
| Sergio Lupo | sergio.lupo@mail.polimi.it | @sergiolupo |