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

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.

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.