- Introduction
- Features
- Installation Guide
- Dependencies
- Project Structure
- Custom Components
- Testing
- Contributing
- License
GeckoCart is a mobile e-commerce application built with React Native. The app provides a seamless and intuitive shopping experience, featuring a user-friendly interface, data persistence with AsyncStorage, and smooth navigation using React Navigation.
- User authentication and session management
- Product listing and detailed views
- Shopping cart functionality
- Secure checkout process
- Real-time data fetching with Axios
- Interactive charts for analytics
- Optimized for both Android and iOS
Ensure you have the following installed:
- Node.js (>=18)
- npm or yarn
- React Native CLI
- Android Studio / Xcode for emulation
- Clone the repository:
git clone https://gitlab.com/ExistCode/react-native-engineer-shopping-cart.git cd react-native-engineer-shopping-cart - Install frontend dependencies:
npm install # or yarn install - Install backend dependencies:
bundle install
- Start the Metro bundler:
npm start --reset-cache
- Start the Rails server:
rails s -b 0.0.0.0
- Run the application:
- For Android:
npm run android
- For iOS:
npm run ios
- For Android:
Below is a list of key dependencies used in this project:
react: 18.3.1react-native: 0.76.6react-native-screens: ^4.5.0
react-navigation: ^5.0.0@react-navigation/native: ^7.0.14@react-navigation/native-stack: ^7.2.0
@fortawesome/react-native-fontawesome: ^0.3.2react-native-chart-kit: ^6.12.0react-native-safe-area-context: ^5.1.0@fortawesome/free-regular-svg-icons: ^6.7.2@fortawesome/free-solid-svg-icons: ^6.7.2react-native-svg: ^15.11.1
axios: ^1.7.9lodash: ^4.17.21moment: ^2.30.1
@react-native-async-storage/async-storage: ^2.1.0
eslint: ^8.19.0prettier: 2.8.8jest: ^29.6.3babel-jest: ^29.6.3typescript: 5.0.4
rails: ~> 8.0.1pg: ~> 1.1puma: >= 5.0bcryptjwtrack-corsjbuildersolid_cachesolid_queuesolid_cablebootsnap, require: falsekamal, require: falsethruster, require: false
eslint: ^8.19.0prettier: 2.8.8jest: ^29.6.3babel-jest: ^29.6.3typescript: 5.0.4debugbrakeman, require: falserubocop-rails-omakase, require: false
GeckoCart/
│── backend/ # Rails API backend
│ ├── app/
│ ├── config/
│ ├── db/
│ ├── Gemfile # Backend dependencies
│── frontend/ # React Native frontend
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── screens/ # App screens
│ │ ├── navigation/ # Navigation setup
│ │ ├── services/ # API and utility functions
│ │ ├── assets/ # Images and static files
│ │ ├── styles/ # Global styling files
│ ├── App.tsx # Entry point of the app
│ ├── package.json # Frontend dependencies and scripts
│── diagrams/ # Project-related diagrams
│── README.md # Documentation
│── INSTRUCTIONS.md # Additional setup instructions
This project reuses and extends some custom components for improved maintainability and modularity:
- Button: A customizable button component with predefined styles
- Card: A flexible card component for product listings
- Header: A reusable top navigation header with back functionality
referred to: Brand Guidelines
This project is licensed under CoinGecko assesment.