Files
tabungin/README.md
dwindown 89f881e7cf feat: reorganize admin settings with tabbed interface and documentation
- 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
2025-10-13 09:28:12 +07:00

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