This project demonstrates how to build a .NET 8 Web API application that leverages PostgreSQL with TimescaleDB extension to handle transaction data. The application showcases various TimescaleDB features including time series data analysis, high volume transaction processing, data retention policies, and TimescaleDB specific optimizations.
- TransactionApi.WebApi: ASP.NET Core Web API project with controllers and API endpoints
- TransactionApi.Data: Data access layer with Entity Framework Core, models, and repositories
- CRUD Operations for Transactions: Create, read, update, and delete transaction records
- Time-Series Data Analysis: Analyze transaction patterns over time
- TimescaleDB Integration: Hypertables, continuous aggregates, and other TimescaleDB features
- Test Data Generation: Automatic generation of sample transaction data
- Swagger Documentation: Interactive API documentation
- Hypertables: Automatic partitioning of time-series data
- Continuous Aggregates: Pre-computed aggregations for faster queries
- Time Bucketing: Group data by time intervals
- Compression Policies: Efficient storage of historical data
docker-compose up -ddotnet build
cd TransactionApi.WebApi
dotnet runOpen your browser and navigate to:
- Swagger UI: https://localhost:7001/swagger
- API Endpoints: https://localhost:7001/api/transactions
GET /api/transactions: List transactions with filtering optionsGET /api/transactions/{id}: Get transaction detailsPOST /api/transactions: Create new transactionPUT /api/transactions/{id}: Update transactionDELETE /api/transactions/{id}: Delete transaction
GET /api/analytics/daily-summary: Daily transaction aggregatesGET /api/analytics/category-summary: Category distribution analysisGET /api/analytics/time-comparison: Compare transactions between time periods
This project is licensed under the MIT License - see the LICENSE file for details.