A Flutter-based mobile app to learn musical instruments with ease!
MariBermusik is a mobile application crafted by a team of five as a college final assignment. Designed to help users learn various musical instruments, this app offers an interactive and user-friendly experience. Built with Flutter, it leverages Firebase for secure authentication, efficient database management, and insightful analytics.
- A visually engaging carousel showcasing images of musical instruments with smooth animated transitions.
- Screenshot:
- Secure login and registration using email and password, featuring a modern gradient background.
- Profile creation with name and username for a personalized experience.
- Screenshot:
- View, add, edit, and delete learning materials for instruments, presented in beautifully styled cards.
- Favorite materials with an intuitive heart animation for quick access.
- Screenshot:
- Displays user details with elegant shadow effects and editable fields.
- Update your name and sign out with a prominent, user-friendly button.
- Screenshot:
📦 MariBermusik
┣ 📂 lib
┃ ┣ 📂 component # Reusable UI components
┃ ┃ ┣ bottom_navbar.dart
┃ ┃ ┣ entry_field.dart
┃ ┃ ┣ loading.dart
┃ ┃ ┣ material_card.dart
┃ ┃ ┣ profile_field.dart
┃ ┃ ┗ top_navbar.dart
┃ ┣ 📂 pages # Main app screens
┃ ┃ ┣ home_screen.dart
┃ ┃ ┣ login_register.dart
┃ ┃ ┣ material.dart
┃ ┃ ┗ profile_screen.dart
┃ ┣ 📂 services # Service logic
┃ ┃ ┣ auth.dart
┃ ┃ ┗ firestore.dart
┃ ┣ main.dart # App entry point
┃ ┣ widget_tree.dart # Manages navigation based on auth state
┃ ┗ firebase_options.dart # Firebase configuration
┣ 📂 assets
┃ ┗ 📂 images # Image assets
┣ 📂 env # Environment config
┣ 📜 .gitattributes
┣ 📜 .gitignore
┣ 📜 metadata
┣ 📜 analysis_options.yaml
┣ 📜 firebase.json
┣ 📜 key_properties
┣ 📜 pubspec.yaml # Dependencies
┣ 📜 pubspec.lock
┣ 📂 linux
┣ 📂 macos
┣ 📂 web
┗ 📂 windows
- Flutter: Cross-platform framework for a rich UI experience.
- Dart: The programming language behind Flutter.
- Firebase:
- Firebase Authentication: Secure user login and registration.
- Cloud Firestore: Efficient storage and retrieval of materials and user data.
- Firebase Analytics: Tracks user interactions for insights.
| Package | Version | Purpose |
|---|---|---|
cloud_firestore |
^4.13.6 | Firestore database integration |
firebase_core |
^2.24.2 | Firebase core functionality |
firebase_auth |
^4.16.0 | User authentication |
firebase_analytics |
^10.8.0 | Analytics tracking |
loading_animation_widget |
^1.0.0 | Loading animations |
timeago |
^3.1.0 | Human-readable timestamps |
card_swiper |
^3.0.1 | Image carousel functionality |
flutter_lints |
^2.0.0 | Code linting |
flutter_launcher_icons |
^0.9.2 | Custom app icons |
-
Clone the Repository
git clone <repository-url>
-
Install Dependencies
flutter pub get
-
Configure Firebase
- Set up your Firebase project.
- Add
firebase.jsonand updatefirebase_options.dartwith your Firebase configuration.
-
Run the App
flutter run
Developed by a passionate team of five students as part of a college final assignment:
- Rendy Pratama
- Usman
- Indra Wijaya
- Marsella
- Chelsea Samsi Wijaya
[Insert license information if applicable]
Made with ❤️ for music lovers!