A modern, full-stack application for processing CSV product data with real-time currency exchange rate conversions. This project provides a seamless workflow for uploading CSV files, asynchronously processing large datasets, and displaying results with powerful filtering and sorting capabilities.
- CSV Upload & Processing - Upload CSV files and track processing progress in real-time
- Async Processing - Handle large datasets (200K+ rows) efficiently
- Currency Conversion - Automatic conversion to multiple currencies (BRL, EUR, GBP, JPY, CAD) using real-time exchange rates
- Product Management - Search, filter, sort, and paginate processed products
- Performance Optimized - Redis caching, bulk database operations, and frontend optimizations
- React (Vite) - Fast and optimized UI framework
- TypeScript - Type-safe code
- TailwindCSS - Utility-first CSS framework
- Context API - Lightweight state management
- Axios - API requests
- NestJS - Scalable Node.js framework
- TypeORM - Database ORM
- PostgreSQL - Relational database
- Redis - Caching and processing status tracking
- Fast-CSV - Efficient CSV parsing
- Docker - Containerization for consistent development and deployment
- Docker Compose - Multi-container orchestration
- Docker and Docker Compose
- Node.js (for local development)
-
Clone the repository
git clone https://github.com/arthursvpb/csv-file-processor.git cd csv-file-processor
-
Run with Docker Compose
docker-compose up --build
-
Access the application
- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
.
├── frontend/ # React frontend application
├── backend/ # NestJS backend application
├── docker-compose.yml # Docker configuration
└── data.csv # Sample data for testing
For more detailed information about each component:
- User uploads a CSV file through the React frontend
- NestJS backend validates and processes the file asynchronously
- Products are stored in PostgreSQL with currency conversions
- Processing status is tracked with Redis
- Frontend displays processed products with filtering and sorting options
The application is containerized using Docker, allowing for easy deployment to any environment that supports Docker containers.
- Data validation and sanitization
- Protection against XSS and SQL injection
- Rate limiting to prevent API abuse
- Proper error handling and logging
- Swagger API documentation
- Advanced analytics and reporting
- Improved UI/UX with animations
- Enhanced testing coverage
- Performance optimizations for bulk operations