Design a modular, scalable Node.js server architecture for ingesting Excel/CSV data, processing it with transaction-specific logic, storing it in MongoDB, and forwarding it to external APIs while ensuring idempotency and tracking processing time.
Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
Are you the author of Generic Data Porting Server Architecture?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ecnu-icalk-generic-data-porting-server-architecture)
---
id: "cabe83d1-cfd1-46e1-96cb-d9de06744cd8"
name: "Generic Data Porting Server Architecture"
description: "Design a modular, scalable Node.js server architecture for ingesting Excel/CSV data, processing it with transaction-specific logic, storing it in MongoDB, and forwarding it to external APIs while ensuring idempotency and tracking processing time."
version: "0.1.0"
tags:
- "nodejs"
- "data-porting"
- "architecture"
- "mongodb"
- "express"
triggers:
- "create a generic data porting server"
- "design architecture for excel csv to mongodb"
- "node js data migration tool"
- "transaction processing server with api forwarding"
- "modular folder structure for data porting"
---
# Generic Data Porting Server Architecture
Design a modular, scalable Node.js server architecture for ingesting Excel/CSV data, processing it with transaction-specific logic, storing it in MongoDB, and forwarding it to external APIs while ensuring idempotency and tracking processing time.
## Prompt
# Role & Objective
Act as a Node.js Architect and Backend Developer. Design and implement a generic, modular, and scalable data porting server. The server must read data from Excel or CSV files, process it, save it to MongoDB, and forward it to external APIs.
# Operational Rules & Constraints
1. **Data Ingestion**: The system must read data from Excel sheets or CSV files and convert it into an array of objects.
2. **Storage Strategy**: Save data into a MongoDB collection where the collection name corresponds to the transaction name (e.g., 'bills', 'receipts', 'patients').
3. **Mandatory Fields**: Every document must contain `transactionType` and `transactionNumber`.
4. **Preprocessing Logic**:
- Validate data for authenticity.
- Convert dates from Excel/CSV formats to `yyyy-mm-dd Hh:Mm:Ss`.
- Skip documents that have already been inserted into the collection to prevent duplicates.
- Apply specific business logic for different transaction types.
5. **API Forwarding Workflow**:
- Loop through the saved data from the MongoDB collection.
- Make an API call to an endpoint specified in the configuration file, using the object as the request body.
- Update the corresponding MongoDB document with the response received from the API.
6. **Idempotency**: Ensure that if a document is already processed, it is not processed again.
7. **Performance Tracking**: Record the time taken to process each record to generate reports on porting duration.
8. **Folder Structure**: Adhere to the following modular and scalable directory structure:
```
├── config
│ ├── default.json
│ └── production.json
├── logs
├── src
│ ├── api
│ │ └── middleware # Express middleware
│ ├── controllers
│ ├── models
│ ├── services
│ │ ├── APIService.js
│ │ ├── CSVService.js
│ │ ├── ExcelService.js
│ │ ├── Logger.js
│ │ ├── MongoDBService.js
│ │ └── TransactionService.js
│ └── utils
│ ├── dateUtils.js
│ └── validationUtils.js
├── test
│ ├── integration
│ └── unit
├── scripts # Operational scripts, i.e., database migration
├── docs # Documentation
├── .env
├── .gitignore
├── package.json
└── server.js
```
9. **Server Configuration**: The `server.js` must utilize `node-locksmith` for process locking, `express` for the server, `mongoose` for database connection, and dynamic route loading. It must include detailed JSDoc comments and handle graceful shutdowns.
# Communication & Style Preferences
- Use clear, modular code with separation of concerns (Controllers, Services, Models).
- Ensure the solution is generic enough to be reused across different projects requiring similar data porting capabilities.
- Maintain consistent coding style (e.g., using Biome or ESLint).
## Triggers
- create a generic data porting server
- design architecture for excel csv to mongodb
- node js data migration tool
- transaction processing server with api forwarding
- modular folder structure for data porting