I'm working on a MERN stack application that will allow users to upload Excel and CSV files. The backend needs to validate and parse this data, apply some business logic, store the processed information, and then generate PDF reports that users can download or access later. I want to ensure the architecture is efficient and scalable. Here's what I'm considering:
- **Tech Stack:** React for the frontend, Node.js and Express for the backend, MongoDB for the database, and I'll use Multer for file handling. For parsing files, I'm thinking of using libraries like xlsx or csv-parser. As for generating PDFs, I'm still deciding between pdfkit, puppeteer, or jsPDF.
- **Key Concerns:** 1) How to structure the architecture? Should parsing and processing be async? 2) How to effectively design the backend services? 3) What are the best practices for ensuring scalability, especially with large files? Should I use a queuing system? 4) How to handle PDF generation in the most efficient way? And finally, 5) I'd love any references to open-source projects or articles that could guide me. I'm committed to building this with future scalability in mind and would appreciate any tips or shared experiences!
6 Answers
If you're considering tech stacks, have you thought about using Next.js with Supabase? It could simplify things a bit and keep your setup clean!
Honestly, your project sounds doable with just a few lines of code in PHP or .NET. Just make sure you're not complicating things too much!
Totally understandable, but do you actually need this app? Make sure it's worth your time and effort. If you’re targeting businesses, check if any existing solutions meet their needs already. Sometimes, they might already have the functionality built into their systems.
You might want to rethink your approach a bit. Instead of solely relying on a web app, consider if an Excel macro could fulfill your needs. Sometimes clients want a simple solution, and you could potentially be over-engineering. Always clarify their real requirements before diving into tech solutions!
I say go for it! MERN may not be my favorite, but if it's what you want to use, just build it!
For PDF generation, keep it separate from your main Node app. You could use a dedicated service like PDFBolt; it handles PDF creation without complicating your backend with headless browsers.

Good point! I'm aiming for a SaaS model, though, to minimize manual interactions with Excel and CSV files.