Implementing a secure production-ready setup by enforcing non-root user containers, applying resource limits and constraints, managing secrets, integrating image vulnerability scanning, and enabling container monitoring and logging.
Go to file
adelyaou 13d26079da Implementing Secure Production-Ready Setup 2025-09-01 18:04:48 +07:00
.github feat: Aplikasi SIPINTAR - Sistem Pemantauan Interaktif dan Pintar untuk Manajemen Sekolah 2025-07-28 12:04:02 +07:00
monitoring Implementing Secure Production-Ready Setup 2025-09-01 18:04:48 +07:00
prisma Dockerizing with development and production environtment 2025-08-14 13:39:52 +07:00
public Update Tampilan UI Landing Page + Dashboard Admin 2025-08-08 21:55:28 +07:00
src Implementing Secure Production-Ready Setup 2025-09-01 18:04:48 +07:00
trivy-results WIP | Security set up in compose 2025-08-22 10:21:38 +07:00
.dockerignore Implementing Secure Production-Ready Setup 2025-09-01 18:04:48 +07:00
.env WIP | Security set up in compose 2025-08-22 10:21:38 +07:00
.env.example Dockerizing with development and production environtment 2025-08-14 13:39:52 +07:00
.env.local toto 2025-07-31 16:35:40 +07:00
.gitignore Implementing Secure Production-Ready Setup 2025-09-01 18:04:48 +07:00
DATABASE_SETUP.md feat: Aplikasi SIPINTAR - Sistem Pemantauan Interaktif dan Pintar untuk Manajemen Sekolah 2025-07-28 12:04:02 +07:00
Dockerfile Dockerizing with development and production environtment 2025-08-14 13:39:52 +07:00
Dockerfile.prod WIP | Security set up in compose 2025-08-22 10:21:38 +07:00
README.md Update README.md 2025-08-08 21:59:31 +07:00
docker-compose-monitoring.yml Implementing Secure Production-Ready Setup 2025-09-01 18:04:48 +07:00
docker-compose-prod.yml Implementing Secure Production-Ready Setup 2025-09-01 18:04:48 +07:00
docker-compose.yml Dockerizing with development and production environtment 2025-08-14 13:39:52 +07:00
eslint.config.mjs Initial commit from Create Next App 2025-07-28 10:12:31 +07:00
next.config.ts Initial commit from Create Next App 2025-07-28 10:12:31 +07:00
package-lock.json Dockerizing with development and production environtment 2025-08-14 13:39:52 +07:00
package.json Dockerizing with development and production environtment 2025-08-14 13:39:52 +07:00
pnpm-lock.yaml Dockerizing with development and production environtment 2025-08-14 13:39:52 +07:00
postcss.config.mjs Initial commit from Create Next App 2025-07-28 10:12:31 +07:00
setup-database.sql Dockerizing with development and production environtment 2025-08-14 13:39:52 +07:00
tsconfig.json Implementing Secure Production-Ready Setup 2025-09-01 18:04:48 +07:00

README.md

SIPINTAR - Sistem Pemantauan Interaktif dan Pintar

Screenshot 2025-08-08 215857 Screenshot 2025-08-08 213859

Aplikasi manajemen sekolah modern yang dibangun dengan Next.js, TypeScript, Prisma ORM, dan MySQL.

Fitur Utama

  • 👨‍💼 Dashboard Pemantauan Pintar: Kelola seluruh sistem sekolah dengan analytics
  • 👨‍🎓 Pemantauan Siswa: CRUD siswa, enrollment kelas, tracking progress real-time
  • 👨‍🏫 Pemantauan Guru: CRUD guru, assignment mata pelajaran, evaluasi kinerja
  • 🏫 Pemantauan Kelas: Monitoring aktivitas kelas, wali kelas, mata pelajaran
  • Sistem Absensi Interaktif: Input dan monitoring kehadiran dengan alert otomatis
  • 📊 Sistem Penilaian Pintar: Input nilai, analitik akademik, insights progress
  • 🔐 Authentication: Login role-based (Admin, Guru, Siswa)
  • 📱 Responsive Design: Mobile-first approach
  • 📈 Analytics Dashboard: Chart dan visualisasi data dengan Recharts

🛠️ Tech Stack

  • Frontend: Next.js 15, React, TypeScript, Tailwind CSS
  • Backend: Next.js API Routes
  • Database: MySQL dengan Prisma ORM
  • Authentication: JWT dengan bcryptjs
  • UI Components: Radix UI, Lucide React
  • Charts: Recharts untuk visualisasi data
  • Styling: Tailwind CSS

🚀 Quick Start

Prerequisites

  • Node.js 18+
  • MySQL Database
  • npm/yarn/pnpm

Installation

  1. Clone repository (jika dari git)

    git clone <repository-url>
    cd SIPINTAR
    
  2. Install dependencies

    npm install
    
  3. Setup Database

    • Buat database MySQL baru
    • Copy .env.example ke .env
    • Update connection string database di .env:
    DATABASE_URL="mysql://username:password@localhost:3306/sipintar_school"
    NEXTAUTH_SECRET="your-secret-key-here"
    NEXTAUTH_URL="http://localhost:3000"
    
  4. Setup Database Schema

    npx prisma db push
    npx prisma generate
    
  5. Seed Database dengan Data Demo

    npm run db:seed
    
  6. Jalankan Development Server

    npm run dev
    
  7. Akses Aplikasi Buka http://localhost:3000

👥 Demo Accounts

Setelah menjalankan seeding, gunakan akun demo berikut:

  • Admin: admin@sipintar.com / admin123
  • Guru: guru@sipintar.com / guru123
  • Siswa: siswa@sipintar.com / siswa123

📁 Struktur Database

Users & Roles

  • User: Base table untuk semua pengguna
  • Student: Profile siswa dengan data orang tua
  • Teacher: Profile guru dengan spesialisasi

Academic Management

  • Subject: Mata pelajaran yang diajarkan
  • Class: Kelas dengan wali kelas dan mata pelajaran
  • ClassStudent: Relasi many-to-many siswa dan kelas
  • AcademicYear: Tahun akademik

Operations

  • Attendance: Sistem absensi harian
  • Grade: Sistem penilaian dengan berbagai jenis nilai

🔧 Available Scripts

npm run dev          # Jalankan development server
npm run build        # Build untuk production
npm run start        # Jalankan production server
npm run lint         # Jalankan ESLint
npm run db:generate  # Generate Prisma client
npm run db:push      # Push schema ke database
npm run db:seed      # Seed database dengan data demo

📐 Project Structure

src/
├── app/                 # Next.js App Router
│   ├── api/            # API routes
│   ├── auth/           # Authentication pages
│   ├── dashboard/      # Dashboard pages
│   └── page.tsx        # Homepage
├── lib/                # Utility functions
│   ├── prisma.ts       # Database connection
│   ├── auth.ts         # Authentication helpers
│   └── utils.ts        # General utilities
└── components/         # React components

prisma/
├── schema.prisma       # Database schema
└── seed.ts            # Database seeding script

🎯 Roadmap

  • NextAuth.js integration
  • Email notifications
  • File upload untuk foto profil
  • Advanced reporting & analytics
  • Mobile app dengan React Native
  • Integration dengan sistem pembayaran
  • Multi-tenant support

🤝 Contributing

  1. Fork repository
  2. Buat feature branch (git checkout -b feature/amazing-feature)
  3. Commit changes (git commit -m 'Add amazing feature')
  4. Push branch (git push origin feature/amazing-feature)
  5. Open Pull Request

📄 License

This project is licensed under the MIT License.

🆘 Support

Untuk bantuan dan dukungan:


Dibuat dengan ❤️ menggunakan Next.js

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.