Introduction
Stashticly derived from the word stash β meaning to store something safely and secretlyβis more than just an expense tracker. It's a powerful, yet user-friendly tool designed to help users take control of their financial lives and can serve as a starting point for creating custom expense tracker apps. This project originated from Antonio's video series, with frontend development by myself and a robust backend crafted by Gustio.
Features
- π Interactive financial dashboard
- π Changeable chart types
- π Account and date filters
- π Detailed transactions table
- β Form to add transactions
- π¨ Customizable select components
- π° Income and expense toggle
- ποΈ Bulk delete and search in transactions
- π CSV transaction imports
Tech Stack
- Clerk: Authentication
- Hono: API
- Tanstack Query: State Management
- DrizzleORM: ORM
- Neon: Postgres Database
- Next.js 14: Core Framework
- TailwindCSS & shadcn/ui: Styling
- Recharts: Charts
Project Roadmap
Initial Setup
The project began with setting up Next.js and shadcn/ui with Bun aas the package manager, providing a solid foundation for frontend development.
Authentication with Clerk
Clerk was implemented for robust authentication, utilizing middleware to authenticate users before accessing sensitive data.
API Routes with Hono
Hono was used for API routes
, ensuring data security and proper validation.
Database Connection
Database connection was established using DrizzleORM and Neon Postgres:
API Structure and Data Management
Separate API
route files were created for accounts, summaries, transactions, and categories. Tanstack Query was used to handle queries and mutations for CRUD operations in form components.
Interactive Dashboard
Recharts was used to create an interactive and visually appealing dashboard for tracking expenses and income.
Next Steps
- Implement more advanced filtering and sorting options
- Add support for multiple currencies
- Integrate with popular financial institutions for automatic transaction imports
- Implement budget planning and goal-setting features
Contributions from the open-source community are welcome as Stashticly continues to evolve!