ecommerce-concept-app
eCommerce
TypeScript
Ecommerce-Concept React Native App
Used Technologies
- React / React Native
- TypeScript
- Expo
- Redux / Redux Toolkit
- React Navigation
Installation
npm i npm start
Then, connect the simulator or the device and run the project through the Expo console.
Or, scan QR code using the Expo Go client on physical phone (Android only).
Implemented Features
- Categories listing
- Featured products listing
- Category products listing
- View product details
- View product details though an external link/URL
- Pull-to-refresh in most areas of the app
- Add products to Cart
- Remove products from Cart
- Cart listing
- Products swiper
- User profile
- Toggle RTL direction
- Notifications & Location permissions control
- Addresses listing
- Add addresess
- Map view to select address location (defaults to user’s current location)
- Searchbar UI (not functional)
- Error and Empty states components and notifications
Project Structure
-- components (contains all the components being utilized and composed to form the screens) |- Categories |- LocationMap |- ProductCard |- ... |- UIElements |- Loader |- CustomButton |- ToggleSwitch |- ... -- hooks (contains all the custom reusable React Hooks) |- useDeeplinkRedirect.ts |- useServerCall.ts |- ... -- navigation (contains all the navigation logic) -- Networking (contains APIs, networking handlers, and Axios instance) |- axiosInstance.ts |- categoriesAPIs.ts |- productsAPIs.ts |- ... -- screens (stand-alone screens/activities/pages) |-- Home |-- CategoryProducts |-- Cart |-- ProductDetails |-- ... -- store (includes Redux/RTK configurations and state slices) |-- slices (state slices) |-- cart.ts |-- user.ts |-- categories.ts |-- ... |-- index.ts (reducers combination and store configuration) -- utilities |-- common.ts (contains common values that are used globally across the App) |-- commonTypes.ts (contains the reoccurring common TypeScript types) |-- errorsMap.ts (maps network errors' status codes) |-- fp_utils.ts (functional programming hand-made utilities) |-- helpers.ts (general functions)
View Product Details Deeplink Scheme
You can automatically open the app and get redirected to a specific product screen by using a link/URL (Deeplink).
This link scheme should be as follows:
tradelingapp://product?id=19