Skip to content

Latest commit

 

History

History
197 lines (163 loc) · 6.62 KB

File metadata and controls

197 lines (163 loc) · 6.62 KB

🎵 MariBermusik Mobile Application

A Flutter-based mobile app to learn musical instruments with ease!

Flutter Firebase Dart


📖 Overview

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.


✨ Features

1. 🎸 Home Screen with Instrument Carousel

  • A visually engaging carousel showcasing images of musical instruments with smooth animated transitions.
  • Screenshot:
    Home

2. 🔐 User Authentication (Login/Register)

  • Secure login and registration using email and password, featuring a modern gradient background.
  • Profile creation with name and username for a personalized experience.
  • Screenshot:
    Login Register

3. 📚 Material Page

  • 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:
    Material List Material Add Material Edit Material Delete

4. 👤 Profile Management

  • Displays user details with elegant shadow effects and editable fields.
  • Update your name and sign out with a prominent, user-friendly button.
  • Screenshot:
    Profile Guest Profile User Profile Edit

🗂️ Project Structure

📦 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

🛠️ Tech Stack

Core Technologies

  • 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.

Dependencies

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

🚀 Installation

  1. Clone the Repository

    git clone <repository-url>
  2. Install Dependencies

    flutter pub get
  3. Configure Firebase

    • Set up your Firebase project.
    • Add firebase.json and update firebase_options.dart with your Firebase configuration.
  4. Run the App

    flutter run

👥 Team

Developed by a passionate team of five students as part of a college final assignment:

  • Rendy Pratama
  • Usman
  • Indra Wijaya
  • Marsella
  • Chelsea Samsi Wijaya

📜 License

[Insert license information if applicable]


Made with ❤️ for music lovers!