All Projects → abdoutech19 → shop-app

abdoutech19 / shop-app

Licence: MIT License
A shopping mobile application made with react native for Android.

Programming Languages

javascript
184084 projects - #8 most used programming language
java
68154 projects - #9 most used programming language
objective c
16641 projects - #2 most used programming language

Projects that are alternatives of or similar to shop-app

Petshop
Pet Shop is an e-commerce application for Android built with Flutter (iOS to come soon).
Stars: ✭ 127 (+27%)
Mutual labels:  firebase-auth, firebase-realtime-database, mobile-development
React Firebase Hooks
React Hooks for Firebase.
Stars: ✭ 2,227 (+2127%)
Mutual labels:  firebase-auth, firebase-realtime-database, react-hooks
whatsapp-clone-react
Build a WhatsApp Clone with React JS and FireBase.
Stars: ✭ 38 (-62%)
Mutual labels:  firebase-auth, firebase-realtime-database, react-hooks
laravel-react-boilerplate
Laravel React Boilerplate with Ant Design, Route-Level Code Splitting, Redux, Sanctum Auth
Stars: ✭ 49 (-51%)
Mutual labels:  axios, react-hooks
MyApp
A template to create awesome Apps easily ⚡️
Stars: ✭ 39 (-61%)
Mutual labels:  mobile-development, react-hooks
club penguin game
A simple 2D multiplayer online game built using Flutter and Flame engine
Stars: ✭ 65 (-35%)
Mutual labels:  firebase-auth, firebase-realtime-database
coronadev
Aplicativo para consultar a situação global do COVID-19
Stars: ✭ 44 (-56%)
Mutual labels:  axios, reactnative
FirebaseChatRoom
This application shows how to build (in Swift4) a simple Chat room where users can register, login, send messages to other users etc using Firebase. If you are a developer who has got an interesting idea but could not find a backend developer to take the idea to a product level, then do check out this project as an introductory course to Firebas…
Stars: ✭ 18 (-82%)
Mutual labels:  firebase-auth, firebase-realtime-database
firebase
Modular Firebase 🔥 implementation for NativeScript. Supports both iOS & Android platforms for all Firebase services.
Stars: ✭ 36 (-64%)
Mutual labels:  firebase-auth, firebase-realtime-database
hopOn
A car rental flutter application using firebase and google maps API
Stars: ✭ 68 (-32%)
Mutual labels:  firebase-auth, firebase-realtime-database
react-vite-admin
This Starter utilizes React, Recoil, React Query, React Hooks, Typescript, Axios And Vite. 全新技术栈的后台管理系统
Stars: ✭ 90 (-10%)
Mutual labels:  axios, react-hooks
use-axios-hooks
axios hooks for common network calls scenarios
Stars: ✭ 27 (-73%)
Mutual labels:  axios, react-hooks
react-app-simple-chat-app
A Simple Chat Application using MERN stack (MongoDB, Express JS, React JS, Node JS) and Socket.io for real time chatting
Stars: ✭ 41 (-59%)
Mutual labels:  axios, react-hooks
Gmail-Clone
A Gmail Clone which built with ReactJS and Redux. You can sign in with your Google Account, compose a new e-mail and send realtime emails to the project.
Stars: ✭ 48 (-52%)
Mutual labels:  firebase-auth, firebase-realtime-database
Chatter
Real time chat app written in Swift 4 using Firebase
Stars: ✭ 30 (-70%)
Mutual labels:  firebase-auth, firebase-realtime-database
MovieCards
React App that uses TMDb API to display movie data. Try it out! ->
Stars: ✭ 38 (-62%)
Mutual labels:  axios, react-hooks
FirebaseChatApp
A Chat app built on firebase features such as firebase-ui,database,storage and cloud messaging
Stars: ✭ 20 (-80%)
Mutual labels:  firebase-auth, firebase-realtime-database
react-hooks-file-upload
React Hooks File Upload example with Progress Bar using Axios, Bootstrap
Stars: ✭ 30 (-70%)
Mutual labels:  axios, react-hooks
FireApp
FirebaseApp is built for learning purposes, especially to see how Firebase Products work together.
Stars: ✭ 34 (-66%)
Mutual labels:  firebase-auth, firebase-realtime-database
add-my-name
No more WhatsApp spams 🎉
Stars: ✭ 16 (-84%)
Mutual labels:  axios, react-hooks

Shop App



Description

This project is a simplified implementation of a shopping system, the project aims to provide the basic features that are expected to be found in a mobile e-commerce application where users can purchase and sell products. To navigate through the app, users have to authenticate themselves. Once logged-in, users can scroll through the list of available products, add different products to the cart, and make orders. Users can also add, edit, remove their own products into the main store.

Authentication and Security

The app contains a simple authentication system implemented using Firebase Auth REST API for the backend. If the authentication process is successful, a unique token is sent from the backend to the user in concern, the token is then stored locally in the device and will expire exactly after 1h of its receival. When expired, the token is deleted from the device and the user will be automatically signed out and prompt to the login screen. Otherwise, if something went wrong with authentication process, the proper error message will be displayed in the screen.

To ensure the right credentials are to be provided whenever the user enters some data, all forms in this project contain some basic validation algorithms that are reused whenever validation is required.

Databases

Most data in this project (products, orders, users) is stored in Firebase Realtime Database. Some other user-specific data (auth-token, favorite products) are stored locally in the device using AsyncStorage.

Navigation

All navigation in this project is built with React Navigation v5.

Animations

The app contains different types of animations on different screens to provide a smoother user experience, all animations are implemented using the React Native Reanimated library, which means the vast majority of calculations required to animate different style properties are all done in the UI Thread in the native side, so the bridge between native and react native is very infrequently crossed, therefore, animtions are never interrupted even if the JS Thread is heavily busy, resulting in smooth animations that would run at 60fps even in low-end devices.

Designs

All design assets used in this app (screens, components, icons...) are made by the owner of this project.

Usage

To run the project locally run the following commands in order:

Clone the project locally

$ git clone https://github.com/abdoutech19/shop-app.git

Navigate to project root directory

$ cd shop-app

Install all dependencies

$ yarn install || npm install

Run the project in debug mode

$ npx react-native run-android

Or run the project in release mode for a smoother experience

$ npx react-native run-android --variant=release

NOTE: this project uses the Hermes JavaScript engine to improve start-up time, decrease memory usage, and reduce app size. For these improvments to take effect, the app has to be running in release mode, otherwise, Hermes won't have any effect on improving performance in debug mode, in fact, some developeres have noticed slower results with the Hermes engine enabled in debug mode.

Built with

Demo

To test the app in your android device, you can download the .apk file from here: shopping.

Video Demo

Authentication and validation

Shop.App.Demo.-.auth.mp4

Shopping

Shop.App.Demo.-.shopping.mp4

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Email me at: [email protected].

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].