A modular full-stack application for managing sales, inventory, and basic point-of-sale operations. Built with Angular, Node.js (Express), and MongoDB, this project demonstrates a clean, containerized architecture where the frontend and backend communicate through a RESTful API.
This project serves as a simple yet complete example of a CRUD-based web app. It provides a user interface for managing items and transactions, backed by a secure API and persistent database storage.
You can use it as:
- A base for POS (point-of-sale) or inventory tools
- A teaching or demo app for Angular–Express integration
- A playground for Dockerized deployment and environment configuration
| Layer | Technology |
|---|---|
| Frontend | Angular 18, TypeScript, RxJS |
| Backend | Node.js, Express, Mongoose |
| Database | MongoDB |
| Environment | Docker, Docker Compose |
| Utilities | dotenv, body-parser, CORS, nodemon |
Install or have access to:
- Node.js (≥ 18.x)
- npm
- MongoDB (local or cloud)
- Docker + Docker Compose (for containerized setup)
Clone the repository:
git clone https://github.com/ncasteln/cash-register-angular-app.git
cd cash-register-angular-appInstall dependencies for both services:
cd backend && npm install
cd ../frontend && npm installCreate a .env file inside backend/:
PORT=3000
MONGODB_URI=mongodb://localhost:27017/cash-registerRun backend and frontend separately:
# Backend (Express API)
cd backend
npm run dev
# Frontend (Angular app)
cd ../frontend
npm startAccess the app at:
- Frontend → http://localhost:4200
- Backend → http://localhost:3000
To build and run everything with Docker Compose:
docker-compose up --buildBoth containers will start and communicate internally.
Licensed under the MIT License. See the LICENSE for more information.