MRLSK8 / SK8shop

Sk8shop (e-commerce) developed with React Native.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sk8shop

Table of contents:

About the project:

Project developed with React Native, with the purpose of simulating a skateshop.

Objective:

  • It's supposed to show all products sorted alphabetically or by price (asc).
  • It's supposed to show product details.
  • Add and remove products from shopping cart.
  • Simulate a purchase, adding products to "my purchases" list.
  • Remove products from "my purchases" list.

Technologies

React Native
Styled-components
Firebase (Firestore, Authentication)
Axios
React-navigation
Redux
Redux-persist
Git-commit-msg-linter
React Hooks
Babel-plugin-root-import
Vector Icons
Immer
Lodash
lottie-react-native
react-native-paper
moti
react-native-reanimated
react-native-image-pan-zoom
Date-fns
react-native-fast-image
redux-saga
Typescript
Jest
@testing-library/jest-native
@testing-library/react-hooks
@testing-library/react-native

Prerequisites

Before proceeding, it is ideal that you have the environment set up to create applications in React Native, for this you can follow the guide of the link below:

React Native's Environment (Android/iOS)

Getting started

First you clone the project:

$ git clone https://github.com/MRLSK8/SK8shop.git && cd SK8shop

Then you run the following command to install packages:

$ yarn install

Next, you start the project:

$ yarn start

Finally you run it like so:

$ yarn android

If you want to build it and generate an APK just do the following

$ yarn android:build

It will generate an APK on android/app/build/outputs/apk/release/app-release.apk, send it to your cellphone and install it.

And that's it! you're ready to use.

Running Tests

You just need to run this command:

  $ yarn test

In order to check the tests coverage out, run this command instead:

  $ yarn test:coverage

File structure

The file structure are in the following way:

├── src/
│   ├── @types/
│   │   └── index.d.js
│   ├── assets/
│   │   └── Icons
│   │       └── skateboard.svg
│   ├── components/
│   │   ├── GoBackButton/
|   |   |   ├── index.tsx
|   |   |   └── style.ts
|   |   ├── ImagePreview/ 
|   |   |   ├── index.tsx
|   |   |   └── style.ts
|   |   ├── ProductItem/ 
|   |   |   ├── index.tsx
|   |   |    style.ts
│   │   └── ScreenHeader/
|   |       ├── index.tsx
|   |       └── style.ts
│   ├── config/
│   │   └── statusBarConfig.ts
│   ├── helpers/
│   │   └──  numberToCurrency.ts
│   ├── hooks/
│   │   └── reduxHooks.tsx
│   ├── routes/
│   │   └── app.routes.ts
│   │   └── auth.routes.ts
│   │   └── bottom-tabs.routes.ts
│   │   └── index.ts
│   │   └── products.routes.ts
│   │   └── purchases.routes.ts
│   │   └── styles.ts
│   ├── screens/
│   │   ├── AppScreens/
|   |   |   ├── myPurchases/ 
|   |   |   |   ├── index.tsx
|   |   |   |   └── style.ts
|   |   |   ├── productDetails/ 
|   |   |   |   ├── index.tsx
|   |   |   |   └── style.ts
|   |   |   ├── productsList/ 
|   |   |   |   ├── index.tsx
|   |   |   |   └── style.ts
|   |   |   └── shoppingCart/ 
|   |   |       ├── index.tsx
|   |   |       └── style.ts
|   |   └── AuthScreens/ 
|   |       ├── signIn/ 
|   |       |   ├── index.tsx
|   |       |   └── style.ts
|   |       └── signUp/ 
|   |           ├── index.tsx
|   |           └── style.ts
│   ├── services/
│   │   └── api.ts
│   ├── store/
│   │   └── actions/
│   │   └── ducks/
│   │   └── sagas/
│   │   └── types/
│   │   └── index.ts
│   ├── styles/
│   │   ├── globalStyles.ts
│   │   └── index.ts
│   └── index.tsx
├── .buckconfig
├── .editorconfig
├── .eslintrc.js
├── .eslintrc.json
├── .gitattributes
├── .gitignore
├── .prettierrc.js
├── .watchmanconfig
├──  app.json
├── babel.config.js
├── index.js
├── LICENSE
├── metro.config
├── package.json
├── react-native.config.js
├── tsconfig.js
├── yarn.lock

License:

This project is licensed under the MIT License - see the LICENSE file for details.

Contact:

Facebook | Instagram | Linkedin

Made with ❤️ by Marcelo Lima 😊

About

Sk8shop (e-commerce) developed with React Native.

License:MIT License


Languages

Language:TypeScript 82.2%Language:Java 8.8%Language:JavaScript 3.3%Language:Ruby 2.4%Language:Objective-C 2.1%Language:Objective-C++ 1.2%