|
|
||
|---|---|---|
| backend | ||
| frontend | ||
| README.md | ||
| package-lock.json | ||
README.md
PolijeCare - Sistem Pengaduan Satgas PPKPT Politeknik Negeri Jember
Sistem pengaduan modern untuk Satgas PPKPT Politeknik Negeri Jember dengan desain clean, akademik, dan profesional.
🏗️ Project Structure
polije-care/
├── backend/ # Laravel API
│ ├── app/
│ │ ├── Models/ # Eloquent Models
│ │ └── Http/Controllers/Api/
│ ├── database/
│ │ ├── migrations/ # Database migrations
│ │ └── seeders/ # Database seeders
│ └── routes/api.php # API routes
└── frontend/ # React Vite App
├── src/
│ ├── api/ # Axios configuration
│ ├── components/ # React components
│ ├── hooks/ # Custom hooks
│ ├── pages/ # Page components
│ ├── services/ # API services
│ └── utils/ # Utility functions
└── .env # Environment variables
🚀 Setup Instructions
Backend Setup (Laravel)
-
Navigate to backend directory
cd backend -
Install dependencies
composer install -
Copy environment file
cp .env.example .env -
Generate application key
php artisan key:generate -
Configure database
- Edit
.envfile - Set your database credentials
- Edit
-
Run migrations and seeders
php artisan migrate php artisan db:seed -
Start development server
php artisan serveAPI will be available at
http://127.0.0.1:8000
Frontend Setup (React)
-
Navigate to frontend directory
cd frontend -
Install dependencies
npm install -
Start development server
npm run devFrontend will be available at
http://localhost:5173
📡 API Endpoints
Articles
GET /api/articles- Get all articlesGET /api/articles/{slug}- Get article by slug
Contact
GET /api/contact- Get contact information
Hero Section
GET /api/hero- Get hero section content
🎨 Features
✅ Implemented Features
-
Modern Landing Page
- Hero section with call-to-action buttons
- About section with animated elements
- Services section (Cara Melapor)
- Articles & Announcements section
- Contact section with multiple contact methods
- Professional footer
-
Navigation & Authentication
- Responsive navbar with mobile menu
- Authentication logic with role-based redirects
- Smooth scroll navigation
- Mixed routing (anchors + React Router)
-
Design & Animations
- Framer Motion animations on scroll
- Modern UI with Tailwind-inspired CSS
- Responsive design for all screen sizes
- Academic color scheme (navy + green + white)
- Hover effects and micro-interactions
-
Data Integration
- Axios configuration with interceptors
- API services for all data fetching
- Loading states and error handling
- Environment variable configuration
🎯 Key Components
- Navbar: Fixed navigation with auth logic
- Hero: Dynamic hero section from API
- About: Information about Satgas PPKPT
- Services: Two reporting methods (WhatsApp + Form)
- Articles: Dynamic articles from API
- Contact: Complete contact information
- Footer: Professional footer with links
🔧 Technology Stack
Backend
- Laravel 12 - PHP Framework
- MySQL - Database
- Sanctum - API Authentication (ready for future use)
Frontend
- React 19 - UI Library
- Vite - Build Tool
- React Router DOM - Routing
- Axios - HTTP Client
- Framer Motion - Animations
🎨 Design System
Colors
- Primary: Navy Blue (
#1e3a8a) - Accent: Green Campus (
#16a34a) - Danger: Red (
#dc2626) - Background: Soft Gray (
#f9fafb)
Typography
- Font Family: Inter, system-ui
- Clean, modern, academic style
Components
- Rounded corners (
--radius-xl) - Soft shadows (
--shadow-md,--shadow-lg) - Hover animations
- Responsive grid layouts
📱 Responsive Design
- Mobile-first approach
- Breakpoints: sm (640px), md (768px), lg (1024px)
- Adaptive navigation (mobile menu)
- Flexible grid layouts
- Touch-friendly buttons
🔐 Authentication Flow
The system includes authentication logic for future implementation:
-
Unauthenticated Users
- See "Masuk" button
- Redirect to
/login
-
Authenticated Users
- See "Dashboard" and "Keluar" buttons
- Role-based redirects:
user→/user/dashboardoperator→/operator/dashboardkonselor→/konselor/dashboard- default →
/redirect
🌐 Environment Variables
Frontend (.env)
VITE_API_URL=http://127.0.0.1:8000/api
Backend (.env)
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=polije_care
DB_USERNAME=root
DB_PASSWORD=
📝 Sample Data
The database seeder includes:
-
Hero Section
- Title: "Aman Bicara, Aman Melapor"
- Subtitle: "Satgas PPKPT Politeknik Negeri Jember"
-
Contact Information
- Address, Phone, Email, Instagram
-
Sample Articles
- 3 sample articles with titles and content
🚀 Deployment
Backend Deployment
- Configure production database
- Set
APP_ENV=production - Run
php artisan config:cache - Set up web server (Apache/Nginx)
Frontend Deployment
- Run
npm run build - Deploy
dist/folder to web server - Configure environment variables
🤝 Contributing
- Fork the repository
- Create feature branch
- Commit changes
- Push to branch
- Create Pull Request
📄 License
This project is proprietary to Politeknik Negeri Jember.
📞 Support
For support, contact:
- Email: satgasppkpt@polije.ac.id
- Phone: +62 331-123456
- Instagram: @satgasppkpt_polije