A full-stack clone of the Zerodha trading platform, built for educational purposes.
This project includes a React frontend (with Vite), a Node.js/Express backend, and MongoDB for data storage.
- User dashboard with live orders, holdings, and positions
- Place buy and sell orders for stocks
- Holdings and positions management
- Responsive UI using React, Vite, and Bootstrap 5
- RESTful API with Express and MongoDB
- Frontend: React 19, Vite, Bootstrap 5
- Backend: Node.js, Express, MongoDB (Mongoose)
- Other: FontAwesome, Axios
Zerodha/
│
├── backend/ # Express API and MongoDB models
│ ├── model/ # Mongoose models
│ ├── schemas/ # Mongoose schemas
│ ├── utils/ # Utility functions
│ ├── index.js # Main server file
│ └── ...
│
├── dashboard/ # Main React frontend (Vite)
│ ├── src/
│ ├── public/
│ └── ...
│
├── frontend/ # (Optional) Landing page or marketing site
│ ├── src/
│ ├── public/
│ └── ...
│
└── README.md # This file
- Node.js (v18 or above)
- npm
- MongoDB (local or Atlas)
- Go to the backend folder:
cd backend - Install dependencies:
npm install
- Create a
.envfile with your MongoDB URI:MONGO_URL=mongodb://localhost:27017/zerodha-clone - Start the backend server:
npm start
- Go to the dashboard folder:
cd dashboard - Install dependencies:
npm install
- Start the frontend:
npm run dev
- Open http://localhost:5173 in your browser.
GET /allHoldings— Get all holdingsGET /allPositions— Get all positionsGET /allOrders— Get all ordersPOST /newOrder— Place a new order (buy/sell)GET /holdingsSummary— Get holdings summary
- Update images in
public/assets/images/ - Modify styles in
public/CSS.cssorsrc/index.css - Adjust React components in
src/
This project is for educational purposes only and is not affiliated with Zerodha.