An open API service indexing awesome lists of open source software.

https://github.com/rendy752/mari-bermusik

Musical instrument learning themed Mobile App that provides CRUD features in learning materials and user authentication using firebase
https://github.com/rendy752/mari-bermusik

copilot dart flutter flutter-firebase-auth flutter-firebase-firestore

Last synced: 26 days ago
JSON representation

Musical instrument learning themed Mobile App that provides CRUD features in learning materials and user authentication using firebase

Awesome Lists containing this project

README

          

# 🎵 MariBermusik Mobile Application

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

![Flutter](https://img.shields.io/badge/Flutter-%2302569B.svg?style=for-the-badge&logo=flutter&logoColor=white) ![Firebase](https://img.shields.io/badge/Firebase-%23FFCA28.svg?style=for-the-badge&logo=firebase&logoColor=black) ![Dart](https://img.shields.io/badge/Dart-%230175C2.svg?style=for-the-badge&logo=dart&logoColor=white)

---

## 📖 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

```plaintext
📦 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**
```bash
git clone
```

2. **Install Dependencies**
```bash
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**
```bash
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!