Project ini adalah sebuah aplikasi berbasis Django untuk mengelola sistem RSVP / Wedding Invitation. Aplikasi ini menyediakan fitur untuk mengelola undangan, konfirmasi kehadiran, tracking pengunjung, dan manajemen tamu. Selain itu, aplikasi ini juga mendukung role management untuk membedakan hak akses pengguna (admin dan user biasa). Aplikasi ini juga dilengkapi dengan interface admin yang user-friendly untuk mengelola seluruh data. 🎉
- User Management: Login, logout, dan manajemen pengguna admin. 👤
- Person Management: Mengelola data tamu dengan kode unik untuk setiap undangan. 👥
- RSVP Management: Create, Read, Update, Delete konfirmasi kehadiran tamu. 💌
- Comment System: Sistem komentar untuk setiap RSVP. 💬
- Tracking System: Melacak IP address dan browser info pengunjung website. 📊
- Export Data: Download data dalam format CSV dengan filter pencarian. 📋
- Responsive UI: Interface yang responsif menggunakan TailwindCSS. 📱
- Pagination: Menampilkan data dengan dukungan paginasi. 📄
- Search & Filter: Pencarian dan filter data berdasarkan nama, kode, atau kriteria lainnya. 🔍
- Invitation Page Management: Kelola halaman undangan dengan mudah menggunakan tombol toggle. 📨✨
project/
├── app/
│ ├── forms/ # Django forms untuk input validation
│ ├── models.py # Database models (User, Person, RSVP, Comment, Tracking)
│ ├── views/ # View logic untuk setiap modul
│ ├── urls.py # URL routing
│ └── utils.py # Utility functions (pagination, CSV export)
├── templates/ # HTML templates
│ ├── partials/ # Reusable template components
│ ├── registration/ # Django registation template components
│ ├── _base.html # Base template
│ ├── trackings.html # Tracking management page
│ ├── konfigs.html # Invitation page configuration
│ ├── persons.html # Person or tamu management page
│ ├── rsvps.html # RSVP management page
│ ├── users.html # User management page
│ └── wedding.html # Wedding Invitation page
├── static/ # Static files (CSS, JS, Images)
├── data/ # Sample data files (JSON fixtures)
└── Dockerfile # Dockerfile for the app
├── manage.py # Django management script
├── requirements.txt # Python dependencies
└── .env # Environment variablesNOTE: untuk memudahkan, saat ini database di set menggunakan sqlite. untuk mengubah ke database PostgreSQL, MySQL bisa diubah di file rsvp/settings.py.
- Extends Django's AbstractUser
- Mengelola autentikasi admin
code: Kode unik untuk undangan (max 50 chars)name: Nama tamu (max 255 chars)created_at,updated_at: Timestamp
code: Kode undangan (opsional, max 50 chars)name: Nama tamu (max 255 chars)message: Pesan dari tamu (TEXT, nullable)attendance: Status kehadiran (YES, NO, MAYBE YES, MAYBE NO)is_active: Status aktif (Boolean, default True)created_at,updated_at: Timestamp
rsvp_id: Foreign key ke RSVPname: Nama komentator (max 255 chars)comment: Isi komentar (TEXT, required)
code: Kode tamu (opsional)ip: IP address pengunjungbrowser_info: Informasi browseris_active: Status aktifcreated_at,updated_at: Timestamp
-
Clone Repository: 📂
git clone https://github.com/repodevs/rsvp.git cd rsvp -
Buat Virtual Environment: 🐍
python -m venv venv source venv/bin/activate # Linux/Mac # atau venv\Scripts\activate # Windows
-
Install Dependencies: 📦
pip install -r requirements.txt
-
Buat
.envfile: 📝cp env.example .env
Update isi dari .env sesuai kebutuhan:
DEBUG=True -
Setup Database and Static Files: 🗄️
python manage.py makemigrations python manage.py migrate python manage.py collectstatic --noinput
-
Load Sample Data (Opsional): 📊
python manage.py loaddata data/*.json -
Create Superuser: 👑
python manage.py createsuperuser
-
Run Development Server: 🚀
python manage.py runserver
-
Akses Aplikasi: 🌐
- Website: http://localhost:8000/
- Dashboard: http://localhost:8000/app/
- Django Admin Panel: http://localhost:8000/admin/
/app/: Dashboard untuk semua fitur. 📋
- GET
/api/configs/: API for Invitation Page configuration. ⚙️
Aplikasi mendukung export data ke format CSV dengan fitur:
- Export semua data atau hasil pencarian
- Filename otomatis dengan timestamp
- Header kolom yang user-friendly
- Handling untuk berbagai tipe data (datetime, boolean, null values)
- Responsive Design: Menggunakan TailwindCSS untuk tampilan yang responsive
- Modal System: Modal untuk view, edit, dan delete data
- Search & Filter: Real-time search dengan parameter query
- Status Indicators: Visual indicator untuk status kehadiran dan aktivitas
- Action Buttons: Tombol aksi yang intuitif untuk setiap operasi
# Generate data sample baru
python manage.py loaddata data/*.jsonnpx @tailwindcss/cli -i ./static/src/input.css -o ./static/src/output.css --watchThis project is licensed under the MIT License. 🏛️
Contributions are welcome! Please fork the repository and submit a pull request. 🚀
For questions or support, please contact edi20240200005@sibermu.ac.id. 💌










