A modern, intuitive data reconciliation tool built with SvelteKit that allows users to upload and compare datasets, identify discrepancies, and analyze results.
- Upload and parse both CSV and Excel files
- Interactive column mapping with smart suggestions
- Visual reconciliation process with progress tracking
- Detailed reconciliation results with failure analysis
- Download reconciliation results as CSV
- Responsive design that works on desktop and mobile devices
- Dark mode support
- Reverse reconciliation (comparison file as primary)
- Handle duplicate entries automatically
- Create reconciliation categories with custom alerts
- Continue reconciliation even after failures
- Perform multiple reconciliations simultaneously
- Access reconciliation history
- API access for integration with other systems
- Custom configuration options
- Node.js 16.x or later
- npm or yarn
-
Clone the repository:
git clone https://github.com/yourusername/reconcile-svelte.git cd reconcile-svelte -
Install dependencies:
npm install
-
Start the development server:
npm run dev
-
Open your browser and navigate to
http://localhost:5173
-
Upload Files:
- Upload a primary file (CSV or Excel)
- Upload a comparison file (CSV or Excel)
-
Map Columns:
- Select ID columns for primary and comparison files
- Map matching columns between the two files
- Choose additional columns to include in the comparison
-
Reconciliation Process:
- The system will process the files and compare the data
- A progress indicator will show the reconciliation status
-
Review Results:
- View summary statistics (total records, matches, failures)
- Examine detailed failure analysis for mismatched records
- Navigate through failures to identify discrepancies
- Download the reconciliation results as a CSV file
- Maximum of 10,000 rows per file
- Basic reconciliation features only
reconcile-svelte/
├── src/ # Source code
│ ├── lib/ # Shared components and utilities
│ │ ├── components/ # Reusable components
│ │ ├── stores/ # Svelte stores for state management
│ │ └── utils/ # Utility functions
│ ├── routes/ # SvelteKit routes/pages
│ └── app.html # HTML template
├── static/ # Static assets
├── tests/ # Test files
│ ├── unit/ # Unit tests
│ └── e2e/ # End-to-end tests
├── package.json # Dependencies and scripts
└── svelte.config.js # Svelte configuration
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run code lintingnpm run format- Format code with Prettiernpm run test:unit- Run unit testsnpm run test:e2e- Run end-to-end testsnpm run test- Run all tests
Unit tests are written using Vitest and focus on testing individual components and utility functions:
npm run test:unitEnd-to-end tests use Playwright to simulate user interactions and test the complete workflow:
npm run test:e2eThe application uses Vercel adapter for deployment. To deploy:
-
Build the project:
npm run build
-
Deploy using the Vercel CLI or connect your repository to Vercel for automatic deployments.
- Framework: SvelteKit
- Styling: TailwindCSS
- State Management: Svelte stores
- File Parsing: SheetJS/xlsx for Excel files
- Testing: Vitest (unit), Playwright (e2e)
- Deployment: Vercel
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ using SvelteKit