A basic web application for managing financial transactions with role-based (maker-checker pattern) access control, powered by Angular, Node.js/Express, and MongoDB.
More Info : Link
| Role | Permissions |
|---|---|
| Maker | Can create, edit, and soft-delete transactions. |
| Checker | Can accept or reject transactions. |
| Admin | Possesses all permissions of both Maker and Checker roles (create, edit, soft-delete, accept, reject). |
- Full lifecycle support for transactions: Create, Edit, Accept, Reject, Soft-Delete.
- Interactive Grid (AG-Grid)
- Dynamic data display with:
- Sorting
- Pagination
- Custom cell rendering
- Real-time updates
- Dynamic data display with:
- Global search functionality across multiple fields.
- Status tabs: PENDING, ACCEPTED, REJECTED, DELETED.
- Advanced sidebar filters:
- Transaction reference number
- From/To Account selection
- Date range (e.g., custom, this week, last month)
- Multi-row selection for bulk operations:
- Maker: Bulk soft-delete.
- Checker/Admin: Bulk accept or reject.
| Login Page | Checker Dashboard with Pending Transactions |
|---|---|
![]() |
![]() |
| Checker Dashboard with Accepted Transactions | Checker Dashboard with Rejected Transactions |
|---|---|
![]() |
![]() |
| Checker Dashboard with Deleted Transactions | Transaction History Timeline |
|---|---|
![]() |
![]() |
| Transaction Creation form | Transaction Overview in Sidebar |
|---|---|
![]() |
![]() |
| Component | Technology |
|---|---|
| Frontend | Angular (with TypeScript) |
| UI Components | AG-Grid, PrimeNG (for enhanced UI elements like Timeline, Cards) |
| Backend | Node.js with Express.js |
| Database | MongoDB Atlas |
-
Clone the repository
git clone https://github.com/hahaanisha/maker-checker cd maker-checker -
Install Node.js dependencies for both frontend and backend
# Ensure you are in the root directory where package.json is located npm install -
Configure MongoDB Connection (Backend)
- Open
server.jsand ensure the MONGODB_URI is correctly set to your MongoDB Atlas connection string. - Example:
const MONGODB_URI = 'mongodb+srv://<username>:<password>@cluster0.hp6v7gu.mongodb.net/?retryWrites=true&w=majority&appName=Cluster0';
- Open
-
Start the Backend Server
- Open a new terminal window/tab in the project root
node server.js
-
Start the Frontend (Angular) Development Server
- Open another new terminal window/tab in the project root
ng serve --open
- The application should automatically open in your browser at http://localhost:4200/
For testing purposes, the following default users are created automatically on the first run of the backend:
| pwd | role | |
|---|---|---|
| anisha2@gmail.com | anisha | Admin |
| anisha1@gmail.com | anisha | Maker |
| anisha@gmail.com | anisha | Checker |







