Project ini adalah aplikasi web fullstack yang dibangun untuk Himpunan Mahasiswa Program Studi (HMPS) Teknik Informatika UIN Malang. Aplikasi ini merupakan platform informasi resmi HIMATIF ENCODER yang menyediakan berbagai informasi seputar kegiatan, prestasi, dan perkembangan Program Studi Teknik Informatika UIN Malang.
Melalui platform ini, kami berupaya untuk memberikan akses informasi yang transparan dan terupdate kepada seluruh mahasiswa Teknik Informatika UIN Malang serta masyarakat umum yang ingin mengetahui lebih lanjut tentang Program Studi Teknik Informatika UIN Malang.
|
|
// Modern React dengan TypeScript
├── React 18 + TypeScript
├── React Query (TanStack Query) - State Management
├── Wouter - Lightweight Routing
├── Radix UI - Accessible Components
├── Tailwind CSS - Utility-first CSS
├── React Hook Form - Form Handling
├── Zod - Schema Validation
├── Lucide React - Beautiful Icons
└── Vite - Ultra Fast Build Tool// Robust Express.js Backend
├── Express.js + TypeScript
├── MongoDB - Primary Database
├── Drizzle ORM - Type-safe Database
├── JWT - Authentication & Authorization
├── Multer - File Upload Handling
├── Bcrypt - Password Hashing
├── Rate Limiting - API Protection
└── ESBuild - Fast Production Build// Scalable Database Design
├── MongoDB - Document Database
├── Schema Validation - Data Integrity
├── Indexing - Performance Optimization
├── Backup Strategy - Data Safety
├── Data Encryption - Security
└── Real-time Sync - Live Updates📦 HMPS Project
├── 🎨 client/ # Frontend React Application
│ ├── 📂 src/
│ │ ├── 🧩 components/ # Reusable UI Components
│ │ │ ├── 🎛️ dashboard/ # Dashboard Components
│ │ │ ├── 🌐 public/ # Public Site Components
│ │ │ └── 🎨 ui/ # Base UI Components (Radix)
│ │ ├── 📄 pages/ # Page Components & Routes
│ │ ├── 🪝 hooks/ # Custom React Hooks
│ │ ├── 🛠️ lib/ # Utility Libraries
│ │ ├── 🎯 utils/ # Helper Functions
│ │ └── 📊 main.tsx # App Entry Point
├── ⚙️ server/ # Backend Express Application
│ ├── 🎮 routes.ts # API Routes Definition
│ ├── 🔐 auth.ts # Authentication Logic
│ ├── 📊 models/ # Database Models
│ ├── 🛡️ middleware/ # Custom Middleware
│ ├── 🔧 services/ # Business Logic
│ └── ⚡ index.ts # Server Entry Point
├── 🗄️ db/ # Database Configuration
│ ├── 📋 schema.ts # Database Schema
│ ├── 🔗 mongodb.ts # MongoDB Connection
│ └── 🌱 seed.ts # Database Seeding
├── 🤝 shared/ # Shared Code (Frontend + Backend)
│ ├── 📝 schema.ts # Shared Type Definitions
│ └── 🛠️ utils/ # Shared Utilities
├── 🌐 public/ # Static Assets
├── 📁 attached_assets/ # User Uploaded Files
│ ├── 📰 articles/ # Article Images
│ ├── 🏢 organization/ # Organization Assets
│ ├── 📚 content/ # Content Images
│ └── 🖼️ general/ # General Media
└── 📜 scripts/ # Utility Scripts
Pastikan Anda telah menginstall:
- Node.js (v18.0.0 atau lebih tinggi)
- npm atau yarn
- MongoDB (local atau cloud)
# 1️⃣ Clone repository
git clone https://github.com/Sadamdi/hmps.git
cd hmps
# 2️⃣ Install dependencies
npm install
# 3️⃣ Setup environment variables
cp .env.example .env
# Edit .env dengan konfigurasi Anda
# 4️⃣ Setup database
npm run db:seed
# 5️⃣ Start development server
npm run dev# Database
MONGODB_URI=mongodb://localhost:27017/hmps
DISABLE_MONGODB=false
# Authentication
JWT_SECRET=your-super-secret-jwt-key
JWT_REFRESH_SECRET=your-refresh-secret-key
# File Upload
UPLOAD_PATH=./uploads
MAX_FILE_SIZE=10485760
# API Configuration
PORT=5000
NODE_ENV=development
# External Services
GOOGLE_DRIVE_API_KEY=your-gdrive-api-key
GEMINI_API_KEY=your-gemini-api-key
VITE_TINYMCE_API_KEY=your-tiny-api-key| Script | Description | Usage |
|---|---|---|
npm run dev |
🚀 Start development server | Development |
npm run build |
📦 Build for production | Production |
npm start |
Production | |
npm run check |
🔍 TypeScript type checking | Development |
npm run db:seed |
🌱 Seed database with sample data | Setup |
| Feature | Implementation | Status |
|---|---|---|
| 🔐 JWT Authentication | Access + Refresh Tokens | ✅ Active |
| 🛡️ Password Security | Bcrypt Hashing (Salt: 12) | ✅ Active |
| 🚧 CORS Protection | Configurable Origins | ✅ Active |
| ⏰ Rate Limiting | IP-based Throttling | ✅ Active |
| ✅ Input Validation | Zod Schema Validation | ✅ Active |
| 🛡️ XSS Protection | Content Security Policy | ✅ Active |
| 🔒 File Upload Security | Type & Size Validation | ✅ Active |
| 📝 Audit Logging | Activity Tracking | ✅ Active |
Project ini menggunakan komponen dari Radix UI yang telah di-styling dengan Tailwind CSS:
📋 Lihat Semua Components
Header- App Header dengan NotificationsSidebar- Navigation SidebarBreadcrumb- Navigation BreadcrumbsNavigation Menu- Complex Navigation
Form- Comprehensive Form HandlingInput- Text Input dengan ValidationTextarea- Multi-line Text InputSelect- Dropdown SelectionCheckbox- Boolean InputRadio Group- Single SelectionSwitch- Toggle Input
Dialog- Modal DialogsAlert Dialog- Confirmation DialogsToast- Notification MessagesTooltip- Hover InformationPopover- Floating ContentHover Card- Rich Hover Content
Table- Data Tables dengan SortingCard- Content CardsBadge- Status IndicatorsAvatar- User AvatarsAccordion- Collapsible ContentTabs- Tabbed Interface
Rich Text Editor- TinyMCE IntegrationImage Upload- Drag & Drop UploadMedia Display- Image/Video DisplayCalendar- Date SelectionChart- Data Visualization
- ⚡ Fast Loading: Optimized bundle dengan code splitting
- 📱 Mobile Optimized: Responsive design untuk semua device
- 🔄 Real-time Updates: WebSocket integration untuk live data
- 💾 Smart Caching: React Query untuk efficient data fetching
- 📈 Performance Monitoring: Built-in performance tracking
Kami sangat menghargai kontribusi dari komunitas! Berikut cara untuk berkontribusi:
- 🍴 Fork repository ini
- 🌿 Create branch fitur (
git checkout -b feature/AmazingFeature) - 💻 Commit perubahan (
git commit -m 'Add some AmazingFeature') - 📤 Push ke branch (
git push origin feature/AmazingFeature) - 🔄 Create Pull Request
- Pastikan kode mengikuti ESLint dan Prettier configuration
- Tulis test untuk fitur baru (jika ada)
- Update documentation jika diperlukan
- Gunakan conventional commits format
Sulthan Adam Rahmadi 🚀 Owner & Lead Developer 📋 Project Manager 💻 Full-stack Developer ⚙️ Backend Developer 🏗️ System Architect 🔐 Security Engineer GitHub |
Muhammad Alif Mujaddid ⚡ Core Developer 💻 Admin System Developer 🎨 Frontend Developer ⚙️ Backend Developer 🎯 UI/UX Designer 🧪 QA Engineer GitHub |
MIT License 📄
Project ini dilisensikan di bawah MIT License - lihat file LICENSE untuk detail.
🌐 Website: himatif.encoder.com
📧 Email: ti@uin-malang.ac.id
📱 Instagram: @himatif.encoder
Dibuat dengan ❤️ oleh Tim HIMATIF ENCODER untuk kemajuan Program Studi Teknik Informatika UIN Malang


