Skip to content
knowledgeDanPublic

About

A simple solution to your recess needs!

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

NitipAbiz

Laravel PHP MariaDB Node.js Status

πŸ“– Tentang NitipAbiz

NitipAbiz adalah platform pemesanan dan pengiriman makanan berbasis web yang dirancang khusus untuk lingkungan sekolah. Platform ini menghubungkan Customer, Canteen Sellers, dan Couriers dalam ekosistem lokal sekolah, memungkinkan siswa untuk memesan makanan dari kantin sekolah dengan sistem pengiriman yang aman dan terpercaya.

🎯 Fitur Utama

  • Multi-Role System: Customer, Seller, Courier, dan System Manager
  • School-Based Locality: Semua transaksi berbasis sekolah
  • Identity Verification: Validasi NIS dan verifikasi identitas
  • Real-time Order Tracking: Pelacakan status pesanan secara real-time
  • Cash Payment System: Sistem pembayaran tunai yang sederhana
  • Dispute Management: Sistem pelaporan dan penyelesaian sengketa

πŸš€ Tech Stack

  • Backend: Laravel 12.x
  • PHP: 8.2.12
  • Database: MariaDB 10.4.32 (MySQL-compatible)
  • Frontend: Blade Templates + Vite + Tailwind CSS
  • Node.js: v22.20.0

πŸ“‹ Prerequisites

Sebelum memulai, pastikan Anda sudah menginstall:

πŸ› οΈ Installation

1. Clone Repository

git clone <repository-url>
cd nitipabiz-app

2. Install Dependencies

# Install PHP dependencies
composer install

# Install Node.js dependencies
npm install

3. Environment Setup

# Copy environment file
cp .env.example .env

# Generate application key
php artisan key:generate

4. Database Setup

PENTING: Pastikan XAMPP MySQL service sudah berjalan!

# Buat database melalui XAMPP phpMyAdmin atau command line
mysql -u root -e "CREATE DATABASE nitipabiz;"

# Update .env file dengan konfigurasi database:
# DB_CONNECTION=mariadb
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=nitipabiz
# DB_USERNAME=root
# DB_PASSWORD=

# Run migrations
php artisan migrate

5. Run Development Server

# Terminal 1 - Laravel Server
php artisan serve

# Terminal 2 - Vite Dev Server
npm run dev

Aplikasi akan berjalan di: http://localhost:8000

πŸ“ Project Structure

nitipabiz-app/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ Http/
β”‚   β”‚   └── Controllers/     # Application controllers
β”‚   └── Models/              # Eloquent models
β”œβ”€β”€ config/                  # Configuration files
β”œβ”€β”€ database/
β”‚   β”œβ”€β”€ migrations/          # Database migrations
β”‚   β”œβ”€β”€ seeders/             # Database seeders
β”‚   └── factories/           # Model factories
β”œβ”€β”€ public/                  # Public assets
β”œβ”€β”€ resources/
β”‚   β”œβ”€β”€ views/               # Blade templates
β”‚   β”œβ”€β”€ css/                 # Stylesheets
β”‚   └── js/                  # JavaScript files
β”œβ”€β”€ routes/                  # Application routes
β”œβ”€β”€ storage/                 # Storage files (logs, cache, uploads)
└── tests/                   # Application tests

πŸ—ƒοΈ Database Schema

Main Tables

  1. schools - Data sekolah
  2. users - Data pengguna dengan roles
  3. student_registry - Registry siswa untuk validasi NIS
  4. canteens - Data kantin sekolah
  5. menus - Menu makanan
  6. orders - Data pesanan
  7. order_items - Detail item pesanan
  8. deliveries - Data pengiriman
  9. order_history - History status pesanan
  10. disputes - Laporan dispute transaksi

πŸ‘₯ User Roles

Role Deskripsi
Customer Siswa yang memesan makanan
Seller Pemilik/pengelola kantin
Courier Kurir pengiriman pesanan
System Manager Administrator platform

πŸ” Security Features

⚠️ CRITICAL FILES - NEVER COMMIT TO GIT

  • .env - Contains database credentials and app secrets
  • storage/*.key - Private encryption keys
  • /auth.json - Composer authentication
  • Any backup files (.sql, .dump)

πŸ›‘οΈ Security Measures Implemented

  1. Environment Variables: All sensitive data in .env (never committed)
  2. Identity Verification: NIS validation + photo verification
  3. Ban Evasion Prevention: School ID + NIS binding
  4. Transaction Logging: Complete order history tracking
  5. Secure File Storage: User uploads isolated in storage directory
  6. CSRF Protection: Laravel CSRF tokens on all forms
  7. SQL Injection Prevention: Eloquent ORM and prepared statements

πŸ“ Development Guidelines

Code Standards

  • Follow PSR-12 coding standards
  • Use Laravel best practices
  • Write meaningful commit messages
  • Keep controllers thin, models fat

Git Workflow

# Create feature branch
git checkout -b feature/your-feature-name

# Make changes and commit
git add .
git commit -m "feat: add your feature description"

# Push to remote
git push origin feature/your-feature-name

Commit Message Convention

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation changes
  • style: Code style changes (formatting)
  • refactor: Code refactoring
  • test: Adding tests
  • chore: Maintenance tasks

πŸ§ͺ Testing

# Run all tests
php artisan test

# Run specific test
php artisan test --filter=TestName

🚒 Deployment

Production Checklist

  • Set APP_ENV=production in .env
  • Set APP_DEBUG=false in .env
  • Generate new APP_KEY
  • Configure production database credentials
  • Set up proper file permissions (storage/ and bootstrap/cache/)
  • Enable HTTPS
  • Configure proper CORS settings
  • Set up automated backups
  • Configure proper logging
  • Run composer install --optimize-autoloader --no-dev
  • Run npm run build
  • Run php artisan config:cache
  • Run php artisan route:cache
  • Run php artisan view:cache

🀝 Contributing

Contributions are welcome! Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

πŸ”’ Security Vulnerabilities

If you discover a security vulnerability, please send an email to the development team. All security vulnerabilities will be promptly addressed.

DO NOT create public GitHub issues for security vulnerabilities.

πŸ“„ License

This project is proprietary software. All rights reserved.

πŸ‘¨β€πŸ’» Development Team

  • Project Name: NitipAbiz
  • Version: 1.0.0 (MVP)
  • Status: Development Phase 1
  • Started: July 27, 2026

πŸ“š Additional Documentation

πŸ†˜ Support

For support and questions:

  • Check PROJECT_SETUP.md for detailed documentation
  • Review existing GitHub issues
  • Create a new issue with detailed information

Made with ❀️ for Indonesian School Communities

About

A simple solution to your recess needs!

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages