|
||
---|---|---|
.github | ||
monitoring | ||
prisma | ||
public | ||
src | ||
trivy-results | ||
.dockerignore | ||
.env | ||
.env.example | ||
.env.local | ||
.gitignore | ||
DATABASE_SETUP.md | ||
Dockerfile | ||
Dockerfile.prod | ||
README.md | ||
docker-compose-monitoring.yml | ||
docker-compose-prod.yml | ||
docker-compose.yml | ||
eslint.config.mjs | ||
next.config.ts | ||
package-lock.json | ||
package.json | ||
pnpm-lock.yaml | ||
postcss.config.mjs | ||
setup-database.sql | ||
tsconfig.json |
README.md
SIPINTAR - Sistem Pemantauan Interaktif dan Pintar
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
-
Clone repository (jika dari git)
git clone <repository-url> cd SIPINTAR
-
Install dependencies
npm install
-
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"
-
Setup Database Schema
npx prisma db push npx prisma generate
-
Seed Database dengan Data Demo
npm run db:seed
-
Jalankan Development Server
npm run dev
-
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
- Fork repository
- Buat feature branch (
git checkout -b feature/amazing-feature
) - Commit changes (
git commit -m 'Add amazing feature'
) - Push branch (
git push origin feature/amazing-feature
) - Open Pull Request
📄 License
This project is licensed under the MIT License.
🆘 Support
Untuk bantuan dan dukungan:
- Create issue di GitHub
- Email: support@sipintar.com
Dibuat dengan ❤️ menggunakan Next.js
Learn More
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
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.