- Reorganized admin settings into tabbed interface (General, Security, Payment Methods) - Vertical tabs on desktop, horizontal scrollable on mobile - Moved Payment Methods from separate menu to Settings tab - Fixed admin profile reuse and dashboard blocking - Fixed maintenance mode guard to use AppConfig model - Added admin auto-redirect after login (admins → /admin, users → /) - Reorganized documentation into docs/ folder structure - Created comprehensive README and documentation index - Added PWA and Web Push notifications to to-do list
149 lines
3.8 KiB
Markdown
149 lines
3.8 KiB
Markdown
# 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 <repository-url>
|
|
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
|