Skip to content

ananyo141/ComputerShop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

99 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Computer Shop | DEMO

A full-featured online shopping application, that captures the usual flow of user registration/login, choosing products and adding to cart, and finally checking out the order with personal details.

This project is written entirely with TypeScript, with best practices in mind leveraging Redux Toolkit and custom typed hooks and an expressive project structure.

Check out the readme scripts for the individual repos for frontend and backend.

Demo

The entirety of the application (frontend and backend) is hosted on Render.

Frontend (global CDN): Try it out

Backend (Singapore): Try it out

Youtube Demo: On my channel

NOTE: Since render has restrictions for free tier web services, the startup time can take several seconds for the first request.

Features

  • Support logins from multiple devices, all user carts and details are preserved, ie, add products from another device, checkout from another afterwards
  • Saved previous orders
  • Secure logins with JSON Web Tokens (JWT)
  • Fully responsive and works well with mobiles, laptops and desktops
  • Beautiful and intuitive UI, powered by TailwindCSS

Tech Stack

Leverages the latest and greatest technologies for better optimization and support.

Frontend:

  • ReactJS
  • Redux Toolkit
  • Typed/custom hooks

Backend:

  • ExpressJS (NodeJS framework)
  • JWT Package for secure authentication
  • Mongoose for seamless integration with MongoDB

TypeScript for runtime type safety.

Husky for pre-commit code linting and prettier for formatting.

Environment Variables

To run this project, you will need to add the following environment variables to your .env file. Also consult the .env.example sample file.

CONNECTIONSTR contains the MONGODB URI for associated NoSQL database

ACCESS_TOKEN_SECRET secret to sign the access tokens with

REFRESH_TOKEN_SECRET secret to sign the refresh tokens with

License

GPL v3