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

https://github.com/vixalien/flutter-notes-app


https://github.com/vixalien/flutter-notes-app

Last synced: 12 months ago
JSON representation

Awesome Lists containing this project

README

          

# πŸ“ Flutter Notes App β€” Individual Assignment 2

This is a mobile note-taking application built with Flutter and integrated with Firebase. The app supports authentication using email and password, and provides full CRUD operations for notes using Firestore.

## πŸ“± Features

* βœ… Firebase Email/Password **Authentication**
* βœ… **Add**, **View**, **Update**, and **Delete Notes**
* βœ… **User-specific notes** using subcollections
* βœ… **β€œNothing here yet”** hint for new users
* βœ… **SnackBar** for success/error messages
* βœ… **Circular Loader** on first fetch
* βœ… Clean state management using **Provider**
* βœ… Proper separation of concerns (Clean Architecture)
* βœ… Logout support
* βœ… Responsive UI

## πŸ’  Setup Instructions

### βœ… Prerequisites

* Flutter installed
* Firebase CLI installed
* Android Studio or compatible emulator/physical device

### πŸ”§ Firebase Setup

#### 1. Create Firebase Project

* Visit [Firebase Console](https://console.firebase.google.com/)
* Create a new project (e.g., `notes-app-assignment`)
* Add a new Android app to the project:

* **Package Name**: `com.example.notes_app`
* Download the generated `google-services.json`
* Place it inside `android/app/`

#### 2. Enable Firebase Services

* Enable **Email/Password Authentication** under the **Authentication** tab
* Create a **Cloud Firestore** database in **production mode**

#### 3. Set Firestore Security Rules

```js
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId}/notes/{noteId} {
allow read, write: if request.auth != null && request.auth.uid == userId;
}
}
}
```

### πŸ“† Project Installation

```bash
git clone https://github.com/vixalien/flutter-notes-app.git
cd flutter-notes-app
flutter pub get
flutter run
```

## πŸ“ Folder Structure

```
lib/
β”œβ”€β”€ data/
β”‚ └── note_repository.dart # Firestore logic
β”œβ”€β”€ models/
β”‚ └── note.dart # Note model
β”œβ”€β”€ providers/
β”‚ └── note_provider.dart # State manager
β”œβ”€β”€ screens/
β”‚ β”œβ”€β”€ login.dart # Login UI
β”‚ β”œβ”€β”€ signup.dart # Signup UI
β”‚ └── notes.dart # Main Notes UI
└── main.dart # App entry and provider setup
```

## πŸ₯ͺ Dart Analyzer

To check code quality:

```bash
flutter analyze
```

> βœ… No warnings or errors