Skip to content

Full Stack open source mobile e-commerce application made with MongoDB, Express, React Native and Nodejs - (Green Trendyol)

License

Notifications You must be signed in to change notification settings

Muhammet-Yildiz/HizliSepet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

logooo

Full Stack open source mobile e-commerce application made with MongoDB, Express, React Native and Nodejs

Configuration and Setup

In order to run this project locally, simply fork and clone the repository or download as zip and unzip on your machine.

  • Open the project in your prefered code editor.
  • Go to terminal -> New terminal (If you are using VS code)
  • First you need to run the ngrok server. This server should not be shut down for project work
  • Then open a different terminal. Split your terminal in half (run Server in one terminal and Client in the other)

ℹ️ Ngrok is a software that allows us to open our applications that we run on localhost on our own computer, over the cloud, under the xxx.ngrok.io sub-domain. ngrok setup.


1- To expose the server using ngrok ;

$ ngrok http 5000
  • Then copy the ngrok url on the server being run
  • cd Client and paste NGROK_URL in .env under ./client
  • Now the connection with the client is ensured
NGROK_URL  = "http://_______.ngrok.io"

2- In a different terminal ;

In the first half of the terminal

$ cd Client
$ npm install (to install client-side dependencies)
$ expo r -c

In the second half of the terminal

  • cd Server and Set environment variables in config.env under ./Config/env
  • Create your mongoDB connection url, which you'll use as your MONGO_URI
  • Supply the following credentials
#  ---  Config.env  ---

NODE_ENV = development
PORT =5000
MONGO_URI =
JWT_SECRET_KEY = 

# --- Terminal ---

$ npm install (to install server-side dependencies)
$ npm start (to start the server)

Key Features

  • ✔️ User registration and login
  • ✔️ Authentication using JWT Tokens
  • ✔️ Favorite, comment and add products to cart
  • ✔️ Select products according to color and size information and add them to the cart
  • ✔️ Showing the latest products you have looked at and similar product recommendations
  • ✔️ Product categories page and display of subcategories
  • ✔️ Search for products by name, brand, and category
  • ✔️ Increase, decrease or delete the quantity of each item in the cart
  • ✔️ Receiving orders by selecting delivery address and bank card
  • ✔️ Detail page showing all orders placed and the latest status of products (shipping time, delivery date) for each order
  • ✔️ Email and password change pages
  • ✔️ Attention was paid to error handling
  • 🛠️ Forgot password page and password reset
  • 🛠️ Adding photos to comments
  • 🛠️ Login with google account
  • 🛠️ Creating a custom page for each brand
  • 🛠️ Addition of payment system (Stripe)
  • ❌ Requests are sometimes processed slowly and cause problems when they are fired at the same time (Could microservice architecture be the solution?.)

Technologies used

This project was created using the following technologies.

Frontend (Mobile)

Backend

  • Node js - A runtime environment to help build fast server applications using JS
  • Express js -The server for handling and routing HTTP requests
  • Mongoose - For modeling and mapping MongoDB data to JavaScript
  • express-async-handler - Simple middleware for handling exceptions inside of async express routes and passing them to your express error handlers
  • jsonwebtoken - For authentication
  • bcryptjs - For data encryption
  • dotenv - Zero Dependency module that loads environment variables
  • multer - Node.js middleware for uploading files
  • cors - Provides a Connect/Express middleware
  • uuid - For random id generator

Database

  • MongoDB - It provides a free cloud service to store MongoDB collections.

Mockups

Search TextInput   Search TextInput   Search TextInput   Search TextInput   Search TextInput  Search TextInput  Search TextInput  Search TextInput  Search TextInput 

Search TextInput  Search TextInput  Search TextInput  Search TextInput  Search TextInput  Search TextInput  Search TextInput  Search TextInput 

Author

License

Copyright 2023 Muhammet Yıldız
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://www.apache.org/licenses/LICENSE-2.0
    
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Project Video

HizliSepet.mp4

Releases

No releases published

Packages

No packages published