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.
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.
- 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
Leverages the latest and greatest technologies for better optimization and support.
- ReactJS
- Redux Toolkit
- Typed/custom hooks
- 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.
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