Skip to content

Vaibhav-Kumar10/My-Notes-App

Repository files navigation

📝 My Notes App (Flutter)

A cleanly architected Flutter application featuring Firebase authentication, modular UI, and comprehensive unit testing.
The project emphasizes separation of concerns, testability, and real-world production patterns.


✨ Highlights

  • 🔐 Firebase Authentication with Clean Architecture
  • 🧪 Fully tested authentication layer (mocked)
  • 🧩 Decoupled UI and backend logic
  • 🧠 Domain-specific error handling
  • 🚀 CI/CD-ready with GitHub Actions
  • 📱 Scalable navigation flow

🏗️ Architecture Overview

UI Layer
   ↓
AuthService (Facade)
   ↓
AuthProvider (Contract)
   ↓
FirebaseAuthProvider (Implementation)
   ↓
Firebase Authentication SDK

✔ UI never talks to Firebase directly
✔ Providers are swappable
✔ Authentication logic is fully testable


📂 Project Structure

lib/
├── constants/        # App constants
├── enums/            # App enums
├── services/         # Authentication & service layer
├── utilities/        # Reusable helpers (e.g., dialogs)
├── views/            # UI screens
├── home.dart         # Initial navigation
└── main.dart         # App entry point

test/
└── auth/             # Authentication unit tests

Each folder contains its own README with detailed documentation:


⚡ Quick Start

# Get dependencies
flutter pub get

# Run the app
flutter run

# Run all tests
flutter test

🤖 CI/CD

  • Fully compatible with GitHub Actions
  • Runs all tests on each push
  • Failures prevent merging regressions
  • Supports future code coverage badges

🚀 Why This Project Matters

  • Demonstrates industry-level Flutter architecture
  • Emphasizes clean separation of concerns
  • Strong unit testing discipline
  • Interview-ready code quality
  • Easily scalable and maintainable

🔮 Future Improvements

  • Add authentication state streams
  • Integrate OAuth providers (Google, Apple)
  • Full code coverage reporting
  • Dependency injection using GetIt / Riverpod
  • Token refresh handling

📄 License

This project is built for learning and demonstration purposes and can be freely adapted or extended.

About

A Notes App built using Flutter.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors