# Documentation Index

Welcome to the Bank Sampah Faperta documentation. This directory contains comprehensive guides for developers, administrators, and contributors.

---

## 📚 Documentation Structure

### For Developers

- **[Developer Guide](DEVELOPER_GUIDE.md)** - Complete development setup, coding standards, testing, and debugging
  - Environment setup and IDE configuration
  - Code standards for PHP/Laravel and React/JavaScript
  - Git workflow and commit message guidelines
  - Testing guidelines and common development tasks
  - Troubleshooting and debugging tips

- **[Database Schema](DATABASE_SCHEMA.md)** - Detailed database documentation
  - Entity relationship diagrams
  - Complete table definitions with all columns
  - Foreign key relationships and constraints
  - Business rules and data integrity guidelines
  - Common SQL queries and examples

### For Deployment

- **[Deployment Guide](DEPLOYMENT_GUIDE.md)** - Production deployment instructions
  - Server requirements and setup
  - Multiple deployment options (VPS, Docker, PaaS)
  - Environment configuration for production
  - SSL certificate setup with Let's Encrypt
  - Queue workers and scheduled tasks
  - Monitoring, logging, and backup strategies
  - Zero-downtime deployment techniques
  - Security hardening and maintenance procedures

### For Contributors

- **[Contributing Guide](../CONTRIBUTING.md)** - How to contribute to the project
  - Ways to contribute (code, documentation, testing)
  - Development workflow and branch naming
  - Commit message conventions
  - Pull request process and templates
  - Bug report and feature request guidelines
  - Coding standards and testing requirements
  - Security reporting procedures

### Project Overview

- **[Project Overview](../PROJECT_OVERVIEW.md)** - High-level project documentation
  - Introduction and project goals
  - Complete technology stack
  - Key features overview
  - System architecture
  - Database schema summary
  - User roles and permissions
  - Project structure
  - Setup and installation
  - Routes overview
  - Recent updates and future plans

---

## 🚀 Quick Start

### I want to...

**...set up the project locally for the first time**
→ Start with [Project Overview - Setup & Installation](../PROJECT_OVERVIEW.md#setup--installation)
→ Then read [Developer Guide - Development Environment Setup](DEVELOPER_GUIDE.md#development-environment-setup)

**...understand the codebase architecture**
→ Read [Project Overview - System Architecture](../PROJECT_OVERVIEW.md#system-architecture)
→ Check [Project Overview - Project Structure](../PROJECT_OVERVIEW.md#project-structure)

**...understand the database structure**
→ Read [Database Schema](DATABASE_SCHEMA.md)
→ Review entity relationships and table definitions

**...deploy to production**
→ Follow [Deployment Guide](DEPLOYMENT_GUIDE.md) step by step
→ Check [Deployment Guide - Server Requirements](DEPLOYMENT_GUIDE.md#server-requirements)

**...contribute code**
→ Read [Contributing Guide](../CONTRIBUTING.md)
→ Follow [Developer Guide - Git Workflow](DEVELOPER_GUIDE.md#git-workflow)

**...write tests**
→ See [Developer Guide - Testing Guidelines](DEVELOPER_GUIDE.md#testing-guidelines)
→ Check [Contributing Guide - Testing Guidelines](../CONTRIBUTING.md#testing-guidelines)

**...understand the tech stack**
→ Read [Project Overview - Technology Stack](../PROJECT_OVERVIEW.md#technology-stack)

**...debug an issue**
→ Check [Developer Guide - Debugging Tips](DEVELOPER_GUIDE.md#debugging-tips)
→ See [Deployment Guide - Troubleshooting](DEPLOYMENT_GUIDE.md#troubleshooting)

---

## 📖 Documentation Standards

All documentation in this project follows these standards:

- **Markdown format** - GitHub-flavored markdown for compatibility
- **Clear structure** - Hierarchical headings and table of contents
- **Code examples** - Practical examples for all technical concepts
- **Up-to-date** - Documentation updated with code changes
- **Accessible language** - Clear explanations without unnecessary jargon

---

## 🔄 Keeping Documentation Updated

When making changes to the project:

- **Code changes:** Update relevant technical documentation
- **API changes:** Update endpoint documentation and examples
- **Configuration changes:** Update setup and deployment guides
- **New features:** Document in project overview and user guides
- **Breaking changes:** Clearly mark and provide migration guides

---

## 📞 Getting Help

If you can't find what you're looking for:

1. **Search the docs** - Use Ctrl+F or search on GitHub
2. **Check issues** - Someone may have asked the same question
3. **Ask in discussions** - Use GitHub Discussions for questions
4. **Contact maintainers** - Email for specific concerns

---

## 📝 Improving Documentation

Found an error or unclear explanation?

- **Small fixes:** Submit a PR directly
- **Larger changes:** Open an issue first to discuss
- **Follow contribution guidelines:** See [CONTRIBUTING.md](../CONTRIBUTING.md)

Documentation improvements are always welcome! 📚

---

*Last updated: 2026-07-06*
