Full-Stack Web Application for Efficient Store Operations
A robust store management system designed to streamline inventory, sales, and staff management. Built with a modern tech stack, the application provides a responsive and user-friendly interface for both administrators and staff.
- Secure JWT-based authentication for admins and staff.
- Role-based access control with distinct permissions for administrators and staff.
- Admins can create and manage stores.
- Staff can join stores via invite links.
- Add, edit, delete, and bulk upload inventory items.
- Real-time stock updates during sales.
- Implemented using react-i18next for localization.
- Supports multiple languages for a global user base.
- Record sales with customer details and itemized breakdowns.
- Generate invoices for completed sales.
- View sales history with filtering, sorting, and pagination.
- Extract item details from uploaded receipt images using Tesseract.js.
- Visualize sales and inventory data with interactive charts and KPIs.
- Comprehensive unit tests for both frontend and backend.
- Code coverage reports generated using Istanbul.
- Built with Salesforce Lightning Design System for a modern and mobile-friendly interface.
- React (Vite)
- React Router
- Axios
- Recharts
- Salesforce Lightning Design System
- Node.js
- Express.js
- MongoDB
- Mongoose
- JWT
- dotenv
- cors
- Vitest
- React Testing Library
- Custom backend test suites
- Tesseract.js for OCR
- string-similarity for data matching
- Modular design with separate controllers, models, and routes for backend logic.
- Linting and formatting with ESLint and Prettier.
- Easy setup with detailed documentation and environment configuration.
- Efficient database queries with Mongoose.
- Pagination and sorting for large datasets.
- Secure authentication and authorization mechanisms.
- Validation of user input to prevent common vulnerabilities.
- Vite development server for local testing.
- Node.js server with MongoDB integration.
git clone https://github.com/srbmaury/store-management-copy.git
# Frontend
cd client
npm install # install the dependencies
npm run dev # Start the development server
npm run test # Run unit tests
npm run test:coverage # Generate code coverage report
npm run cypress:open # Open Cypress for end-to-end testing
# Backend
cd server
npm install # install the dependencies
npm run dev # Start the backend server
npm run test # Run backend tests
npm run test:coverage # Generate backend code coverage reportPlease refer to CONTRIBUTING.md for guidelines.