BicoRush
Overview
Mobile app for task management, designed for students looking to optimize their productivity. In addition to the classic to-do list features, the app will track metrics such as timeliness and task completion frequency, providing personalized statistics (in a dedicated page) and suggestions/reminders via notifications.
The app will include a “personal” section for individual tasks and productivity analysis, and a “collaborative” section for managing shared notebooks and working together on common tasks (either individual or asynchronously shared). Gamification will feature a scoring system that rewards the most productive members, displaying them on a leaderboard.
Additional potential features include integration with Maps and Calendar, a Pomodoro timer, recurring tasks, home screen widgets, and tasks with attached files (images, PDFs, audio).
Features
-
Task Management: Create, organize, and prioritize tasks.
-
Productivity Analytics: Track your performance and identify improvement areas.
-
Gamification: Earn rewards and achievements for completing tasks.
-
Group Collaboration: Work together with friends and classmates on shared tasks.
-
Integrations: Connect with other productivity tools and services.
Tech Stack
Frontend: Flutter
Backend: Firebase via FlutterFire
Setup & Installation
Clone the repository:
git clone https://gitlab.com/bicorushdevteam/bicorush
Navigate to the project folder:
cd bicorush
Install dependencies:
flutter pub get
Run the app (ensure to have an emulator running before running the command):
flutter run
CI/CD Pipeline
The project uses GitLab CI/CD with a .gitlab-ci.yml
configuration to:
- Execute static analysis;
- Execute unit and widget tests;
- Generate and publish documentation on GitLab Pages (sprint branches only).
Documentation
Available on GitLab Pages.
To generate the documentation:
dart doc
Best practices:
- Use DartDoc syntax (
///
) for public classes, methods, and properties to ensure clear, auto-generated documentation. - Keep descriptions concise but informative, and include examples when useful to enhance readability and maintainability.
Analysis & Testing
To execute the unit tests:
flutter test
To execute static analysis:
flutter analyze
Contributors
Nicolas Guarini — n.guarini@campus.unimib.it — 918670
Matteo Breganni — m.breganni@campus.unimib.it — 869549
Manuel Marceca — m.marceca@campus.unimib.it — 919784
License
Made with ❤️ by the BicoRush Team
Libraries
- constants/cloud_storage_constants
- constants/pomodoro_constants
- constants/text_fields_constants
- exceptions/cloud_storage_exceptions
- firebase_options
- main
- models/cloud_chat_message
- models/cloud_group
- models/cloud_task
- models/timer_settings
- screens/achievements_screen
- screens/groups/create_group_screen
- screens/groups/edit_group_screen
- screens/groups/group_chat
- screens/groups/group_details_screen
- screens/groups/group_leaderboard_screen
- screens/groups/group_tasks_screen
- screens/groups_screen
- screens/home_screen
- screens/pomodoro_timer_screen
- screens/pomodoro_timer_settings_screen
- screens/profile_screen
- screens/sign_in_screen
- screens/tasks/create_task_screen
- screens/tasks/edit_task_screen
- screens/tasks/task_details_screen
- screens/tasks_screen
- services/auth/auth_wrapper
- services/calendar/google_calendar_api
- services/cloud/firebase_cloud_storage
- services/notification/notification_service
- services/pomodoro/pomodoro_service
- theme/colors
- theme/theme
- utils/hash
- utils/stats
- widgets/personal_statistics