https://github.com/thenoumandev/mad_project
This repository contains the final project that we created by combining all the assignments we did in the semester into one application and make it run.
https://github.com/thenoumandev/mad_project
crud firebase getx imagepicker push-notifications rest-api sharedpreferences sqflite videoplayer
Last synced: 2 months ago
JSON representation
This repository contains the final project that we created by combining all the assignments we did in the semester into one application and make it run.
- Host: GitHub
- URL: https://github.com/thenoumandev/mad_project
- Owner: TheNoumanDev
- License: mit
- Created: 2023-05-05T15:40:36.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-05T16:26:29.000Z (about 3 years ago)
- Last Synced: 2025-04-02T23:47:16.055Z (over 1 year ago)
- Topics: crud, firebase, getx, imagepicker, push-notifications, rest-api, sharedpreferences, sqflite, videoplayer
- Language: Dart
- Homepage:
- Size: 309 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Flutter Project Overview
This Flutter project uses several concepts that were learned and implemented together to create a functional application. The following topics were included:
- Splash screen with animations using getX
- Signing up/signing in with Firebase and Google
- Shared preferences
- Firebase CRUD with Realtime Database
- Custom widgets
- Take image from gallery and post it on Firebase
- Push notifications
- API CRUD
- SQFLite CRUD
- Video
Below is a detailed explanation of each concept:
## Splash Screen with Animations using getX
A splash screen provides a professional look to an app and makes the user experience more engaging. This project uses getX to create a splash screen with animations. With getX, you can easily create animated splash screens by adding an animation controller and using the `GetBuilder` widget to rebuild the view.
## Signing Up/Signing In with Firebase and Google
Firebase is a backend service that provides several features, including authentication. This project uses Firebase Authentication to provide users with the ability to sign up and sign in using either email/password or their Google account. This feature provides a secure and streamlined way for users to authenticate themselves within the app.
## Shared Preferences
Shared preferences is a simple key-value store that is used to store data on the device. This project uses shared preferences to store small amounts of data, such as user settings and preferences. The shared preferences package is easy to use, and it allows your app to store data even when the app is closed.
## Firebase CRUD with Realtime Database
This app uses Firebase Realtime Database to perform CRUD operations on data. Firebase Realtime Database is a cloud-hosted NoSQL database that stores data in JSON format. It allows you to synchronize data between clients in real-time and eliminates the need for server-side code.
## Custom Widgets
Custom widgets are reusable components that you can create within your app to simplify the development process. This project uses custom widgets to make the UI more consistent and reusable. Custom widgets also make it easier to maintain the codebase and reduce redundancy.
## Take Image from Gallery and Post it on Firebase
This project has the functionality to allow users to take images from their device's gallery and post them on Firebase. This feature is important for any app that requires users to upload images. The app uses the `image_picker` package to select an image from the device's gallery, and then it uses Firebase Storage to store the image.
## Push Notifications
Push notifications are messages that are sent to a user's device even when the app is not in use. This project uses the Firebase Cloud Messaging (FCM) service to send push notifications to the user's device. This feature is important for any app that requires real-time updates or reminders.
## API CRUD
API stands for Application Programming Interface, which allows your app to communicate with external services. This project implements CRUD operations using an API, which allows your app to interact with external data sources. The API CRUD functionality is implemented using HTTP requests to create, read, update and delete records.
## SQFLite CRUD
SQFlite is a lightweight library used to perform CRUD operations on a local SQLite database. This project uses SQFLite to store data locally on the user's device. This feature is important for apps that require offline capabilities or need to store data that is not appropriate for cloud storage.
## Video
Finally, this project includes video functionality, which allows users to stream or play videos within the app. This feature can be important for any app that requires audio-visual content.