https://github.com/vixalien/flutter-notes-app
https://github.com/vixalien/flutter-notes-app
Last synced: 12 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/vixalien/flutter-notes-app
- Owner: vixalien
- Created: 2025-07-06T23:52:29.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2025-07-06T23:59:35.000Z (12 months ago)
- Last Synced: 2025-07-07T00:35:20.862Z (12 months ago)
- Language: C++
- Size: 0 Bytes
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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