Welcome to Wordie, a notes app built with flutter.
The first step to testing or running this app is getting the code
git clone https://github.com/maroafenogho/wordie.git
.
.
flutter pub get
Run the app to confirm that everything works
flutter run
The app uses the Riverpod Architechture as proposed by Andrea together with the feature first approach. The folder structure for the project is:
lib/src/features/📁data
/📁repository/note_repo.dart
/📁application
/📁services/note_service.dart
/📁domain
/note_model.dart
/📁presentation
/📁screens/note_screen.dart
/📁controllers/note_controller.dart
Riverpod is used for state management, go_router for navigation, firebase for authentication and realtime database.
Each /📁data/repo.dart file contains code to query Firebase or carry out authentication calls. The data retrieved fron the network call is parsed to the /📁application/service.dart class. The controller class receives the data from the service class and uses the data to update state.
When you run the app for the first time, you will be directed to the login page. As a new user, you would have to navigate to the sign-up page by tapping on the signup botton. User registration is achieved by using the createUserWithEmailAndPassword() method from firebase. When a user is successfully registered, the entered name is used to update the user's display name and a verification email is sent while the app navigates to the Login screen. The login logic prevents users who have not verified their email addresses from gaining access.
- Riverpod state management and dependency overrides
- go_router
- Custom widgets
- Firebase authentication
- Firebase database
- Feature-first Architecture
- Shared preferences
- Dart extension and more