Production URL: https://finstream-app.onrender.com
FinStream is a high‑performance financial analytics web application built using Spring Boot (Java 17) and Functional Programming with Java Streams.
The system allows users to upload a CSV file containing transaction data and instantly receive structured financial insights — processed entirely in-memory without any database.
The application is fully containerized using Docker (multi-stage build) and deployed publicly via Render.
Modern professionals often maintain transaction exports from banking or expense systems but lack lightweight tools to quickly analyze them without installing heavy software.
FinStream solves this by:
- Accepting raw transaction datasets
- Processing them using Java Streams
- Generating financial intelligence in seconds
- Presenting results in a clean dashboard UI
- Total Income
- Total Expense
- Net Balance
- Average Transaction Value
- Category-wise Expense Breakdown
- Top Spending Category
- Highest Transaction
- Monthly Expense Trend
- Pure in-memory processing (no database)
- Functional programming with Streams API
- BigDecimal precision handling
- Input validation and error handling
- Docker multi-stage build
- Non-root container runtime
- Environment-aware port binding
- Auto-deploy via GitHub → Render
Client (HTML/CSS/JS)
↓
Spring Boot REST Controller
↓
CSV Parsing Service
↓
Stream-Based Analytics Engine
↓
Structured JSON Response
↓
Dashboard Rendering
The application follows a layered architecture:
- Controller Layer
- Service Layer
- Domain Model Layer
No persistence layer by design (stateless processing).
src/
├── main/
│ ├── java/com/vcs/finstream/
│ │ ├── controller/
│ │ ├── service/
│ │ ├── model/
│ │ └── FinstreamApplication.java
│ └── resources/
│ ├── static/
│ └── application.properties
Dockerfile
.dockerignore
pom.xml
| transactionId | amount | type | category | timestamp |
|---|---|---|---|---|
| TX1 | 2500.00 | DEBIT | FOOD | 2026-01-10T10:15:30 |
- Allowed file type:
.csv - Timestamp format: ISO‑8601
- Type: CREDIT or DEBIT
- Category: FOOD, RENT, TRAVEL, SHOPPING, ENTERTAINMENT, SALARY, UTILITIES, OTHER
| Layer | Technology |
|---|---|
| Backend | Spring Boot 3.x |
| Language | Java 17 |
| Build Tool | Maven |
| Container | Docker (Multi-stage) |
| Deployment | Render |
| Frontend | HTML, CSS, JavaScript |
Multi-stage Docker build:
- Maven builder stage
- Lightweight JRE runtime stage
- Non-root execution
- Dynamic port configuration
Run locally:
docker build -t finstream-app .
docker run -p 8080:8080 finstream-app
- GitHub repository connected to Render
- Automatic builds on push to
main - Free tier web service
- HTTPS enabled by default
- Stateless design for scalability
- No database (stateless)
- Controlled CSV parsing
- Precision-safe monetary calculations
- No blocking operations
- Optimized for small-to-medium datasets (1K–50K records comfortably)
- In-memory Stream processing
- O(n) single-pass aggregations
- Minimal object overhead
- Instant response for ~1,000 transactions
Chandra Sekhar Vipparla LinkedIn: https://www.linkedin.com/in/chandra-sekhar-vipparla/
GitHub: https://github.com/codeWithVCS
This project is built for portfolio demonstration purposes.
- JWT authentication
- Multi-user support
- Historical analytics storage
- Redis caching layer
- Export insights as PDF
- Advanced visualization charts
⭐ If you found this project interesting, feel free to star the repository.