/pluto

Lightweight eCommerce application in Node + React

Primary LanguageJavaScript

A lightweight eCommerce application (not the dwarf planet).

GitHub issues GitHub pull requests GitHub stars GitHub contributors

Table of Contents

Key Features

  • Monolithic repo containing store, backend & admin all together.
├── admin
├── backend
└── store
  • store follows the MVC architecture.
  • store and admin are built using Ant Design for consistent UI design.
  • backend is written in TypeScript for predictable static types.
Show screenshots

Screenshots will be added prior to first release

Development

Prerequisites:

The below commands can be used to install the dependencies & run it locally:

# Clone repository
git clone https://github.com/Alamin02/pluto.git

# Change directory
cd pluto

# Install dependencies
yarn

# Start the pluto store server
yarn start:frontend

In browser at http://localhost:3000/ the frontend of Pluto will open. Since there's no server to serve data from backend, no products will be shown yet.

Before starting the backend, first go to backend folder and create a .env file with the configs like shown in .env.example. For storing images you need a Cloudinary account. After creating an account in cloudinary, go to cloudinary console and there you will find cloudinary related configs there.

# JWT
JWT_SECRET=

# Cloudinary
CLOUD_NAME=
API_KEY=
API_SECRET=

To get started fast with mock data, run the following commands to start the backend server:

# Start the pluto backend server
yarn start:backend

# Seed products data
yarn seed:products

In browser at http://localhost:3000/ refresh the page to see the products.

All the data served to Pluto store can be managed via admin panel. Run the following commands to start admin panel:

# Start the pluto admin server
yarn start:admin

# Would you like to run the app on another port instead? » (Y/n)
y

To log in to the admin panel run the following command to generate admin credentials.

# Create admin account from command line
yarn create:admin --email=test_email@email.com --password=test_password

Replace test_email@email.com and test_password with your preferred email and password. Use these credentials to log in to the admin panel.

⚠️ Using yarn instead of npm is advised

Contributors

Organized alphabetically

Farhan Bin Amin

Md. Al Amin

Mehedi Hasan

Raihan Kabir Rifat

Wali Ullah

License

License will be added prior to first release