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

MIT License


Made with ❤️ by the BicoRush Team

Libraries

app_navigation
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