Skip to content

Latest commit

Β 

History

35 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Steel Ledger πŸ“Š

A modern full-stack business management platform for small businesses and shopkeepers to manage customers, transactions, GST invoices, and business analytics from a single dashboard.

React Node.js PostgreSQL License Status


πŸ“‘ Table of Contents


πŸ“– Overview

Steel Ledger is a complete business management application built using the MERN ecosystem (with PostgreSQL). It helps shopkeepers and small business owners efficiently manage daily operations, customer records, GST-compliant invoices, financial transactions, and analytics through an intuitive web interface.

The application is designed with scalability, security, and ease of use in mind.


✨ Features

πŸ‘₯ Customer Management

  • Add, edit, delete customers
  • Customer spending history
  • Customer search
  • Customer profile management

πŸ’° Transaction Management

  • Credit & Debit tracking
  • Category-wise organization
  • Monthly reports
  • CSV Export
  • Transaction history

🧾 GST Invoice Generation

  • Professional invoice creation
  • Automatic GST calculation
  • Discount handling
  • Printable invoices
  • Invoice history

πŸ“ˆ Dashboard Analytics

  • Revenue charts
  • Expense tracking
  • Credit vs Debit visualization
  • Business insights
  • Monthly summaries

πŸ” Authentication & Security

  • JWT Authentication
  • Password Hashing (bcrypt)
  • Protected Routes
  • Rate Limiting
  • Helmet Security Middleware

πŸ›  Tech Stack

Frontend

  • React 18
  • Tailwind CSS
  • Material UI
  • Chart.js
  • Formik
  • Yup

Backend

  • Node.js
  • Express.js

Database

  • PostgreSQL
  • Neon Database

Authentication

  • JWT
  • bcryptjs

Security

  • Helmet
  • Express Rate Limit

Deployment

  • Vercel
  • Render
  • Neon

πŸ— Deployment Architecture

image

πŸ“‚ Project Structure

Steel-Ledger
β”‚
β”œβ”€β”€ client/
β”‚   β”œβ”€β”€ public/
β”‚   β”œβ”€β”€ src/
β”‚   └── package.json
β”‚
β”œβ”€β”€ server/
β”‚   β”œβ”€β”€ controllers/
β”‚   β”œβ”€β”€ routes/
β”‚   β”œβ”€β”€ middleware/
β”‚   β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ config/
β”‚   └── package.json
β”‚
β”œβ”€β”€ README.md
└── LICENSE

βš™ Environment Variables

Backend (server/.env)

PORT=5000
NODE_ENV=production

DATABASE_URL=postgres://<user>:<password>@<hostname>/<database>?sslmode=require

JWT_SECRET=your_secret_key
JWT_EXPIRY=24h

CLIENT_URL=https://your-vercel-app.vercel.app

Frontend (client/.env)

REACT_APP_API_URL=https://your-render-api.onrender.com/api

πŸš€ Installation

Clone Repository

git clone https://github.com/Priyanshu20511/Steel-Ledger.git

cd Steel-Ledger

Backend Setup

cd server

npm install

npm run db:setup

npm run dev

Frontend Setup

cd client

npm install

npm start

The frontend will start at

http://localhost:3000

πŸ“‘ API Endpoints

Authentication

Method Endpoint Description
POST /api/store/register Register Store
POST /api/store/login Login
GET /api/store/profile Store Profile

Transactions

Method Endpoint Description
GET /api/transactions Get Transactions
POST /api/transactions Add Transaction
GET /api/transactions/summary Dashboard Summary

Invoices

Method Endpoint Description
GET /api/invoices Get Invoices
POST /api/invoices Create Invoice
GET /api/invoices/:id Invoice Details

πŸ“Έ Screenshots

Add screenshots of:

  • Login Page
  • Dashboard
  • Customer Management
  • Transaction Page
  • Invoice Generator
  • Analytics Dashboard

Example:

![Dashboard](screenshots/dashboard.png)

πŸš€ Future Improvements

  • Email Invoice Support
  • PDF Invoice Export
  • Multi-user Support
  • Inventory Management
  • Mobile Responsive Dashboard
  • Role-Based Access Control
  • Dark Mode
  • PWA Support
  • Notification System

🀝 Contributing

Contributions are welcome!

  1. Fork the repository

  2. Create a feature branch

git checkout -b feature-name
  1. Commit changes
git commit -m "Add new feature"
  1. Push
git push origin feature-name
  1. Open a Pull Request

⭐ Support

If you found this project useful, consider giving it a ⭐ on GitHub.

It helps others discover the project and motivates further development.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages