# Tabungin A modern financial tracking application built with React and NestJS. ## 📚 Documentation Comprehensive documentation is available in the [`docs/`](./docs) folder: - **[Documentation Index](./docs/README.md)** - Start here for all documentation - **[Features](./docs/features/)** - Detailed feature documentation - **[Guides](./docs/guides/)** - How-to guides and tutorials - **[Planning](./docs/planning/)** - Roadmap and to-do list ## 🚀 Quick Start ### Prerequisites - Node.js 18+ - PostgreSQL 14+ - npm or yarn ### Installation 1. **Clone the repository** ```bash git clone cd Tabungin ``` 2. **Install dependencies** ```bash npm install ``` 3. **Setup environment** ```bash # Copy environment files cp apps/api/.env.example apps/api/.env cp apps/web/.env.example apps/web/.env # Edit .env files with your configuration ``` 4. **Setup database** ```bash cd apps/api npx prisma migrate dev npx prisma db seed ``` 5. **Run development servers** ```bash # Terminal 1: API cd apps/api npm run dev # Terminal 2: Web cd apps/web npm run dev ``` 6. **Access the application** - Web: http://localhost:5174 - API: http://localhost:3001 ## 🏗️ Project Structure ``` Tabungin/ ├── apps/ │ ├── api/ # NestJS backend │ │ ├── src/ │ │ │ ├── auth/ # Authentication │ │ │ ├── users/ # User management │ │ │ ├── wallets/ # Wallet management │ │ │ ├── transactions/ │ │ │ └── admin/ # Admin features │ │ └── prisma/ # Database schema │ └── web/ # React frontend │ ├── src/ │ │ ├── components/ │ │ ├── contexts/ │ │ ├── lib/ │ │ └── utils/ │ └── public/ ├── docs/ # Documentation │ ├── features/ # Feature docs │ ├── guides/ # How-to guides │ └── planning/ # Roadmap & to-do └── README.md ``` ## ✨ Features - 💰 **Wallet Management** - Multiple wallets with different currencies - 📊 **Transaction Tracking** - Income and expense tracking - 👤 **User Profiles** - Customizable user profiles with avatars - 🔐 **Multi-Factor Authentication** - Email, WhatsApp, and TOTP - 👥 **Admin Panel** - Comprehensive admin dashboard - 💳 **Subscription Plans** - Flexible subscription management - 💵 **Payment Processing** - Multiple payment methods - 🛡️ **Security** - JWT authentication, role-based access - 🌙 **Dark Mode** - Light and dark theme support - 🌍 **Multi-language** - English and Indonesian ## 🔧 Tech Stack ### Frontend - React 18 - TypeScript - Vite - TailwindCSS - shadcn/ui - React Router - Axios ### Backend - NestJS - TypeScript - Prisma ORM - PostgreSQL - JWT Authentication - Passport.js ## 📖 Documentation - [Features Documentation](./docs/features/) - Detailed feature implementations - [Testing Guide](./docs/guides/testing-guide.md) - How to test the application - [To-Do List](./docs/planning/todo.md) - Upcoming features and tasks - [Technical Q&A](./docs/planning/tech-qa.md) - Technical decisions and answers ## 🤝 Contributing 1. Fork the repository 2. Create a feature branch (`git checkout -b feature/amazing-feature`) 3. Commit your changes (`git commit -m 'Add amazing feature'`) 4. Push to the branch (`git push origin feature/amazing-feature`) 5. Open a Pull Request ## 📝 License This project is licensed under the MIT License. ## 🆘 Support For questions or issues: - Check the [Documentation](./docs/README.md) - Review [Technical Q&A](./docs/planning/tech-qa.md) - Open an issue on GitHub