{"id":31617256,"url":"https://github.com/repodevs/rsvp","last_synced_at":"2026-02-14T23:31:50.331Z","repository":{"id":298383460,"uuid":"984751430","full_name":"repodevs/rsvp","owner":"repodevs","description":"RSVP App built with Django Framework - SIF016 Web Framework Sibermu","archived":false,"fork":false,"pushed_at":"2025-06-10T20:24:06.000Z","size":3032,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-06T12:39:26.294Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/repodevs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-16T12:54:54.000Z","updated_at":"2025-06-10T20:24:09.000Z","dependencies_parsed_at":"2025-06-10T21:40:07.203Z","dependency_job_id":null,"html_url":"https://github.com/repodevs/rsvp","commit_stats":null,"previous_names":["repodevs/rsvp"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/repodevs/rsvp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/repodevs%2Frsvp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/repodevs%2Frsvp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/repodevs%2Frsvp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/repodevs%2Frsvp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/repodevs","download_url":"https://codeload.github.com/repodevs/rsvp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/repodevs%2Frsvp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29460694,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T22:42:09.113Z","status":"ssl_error","status_checked_at":"2026-02-14T22:42:05.053Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-06T12:30:20.932Z","updated_at":"2026-02-14T23:31:50.326Z","avatar_url":"https://github.com/repodevs.png","language":"HTML","readme":"# RSVP Management System 💌\n\nProject 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. 🎉\n\n## Fitur ✨\n\n- **User Management**: Login, logout, dan manajemen pengguna admin. 👤\n- **Person Management**: Mengelola data tamu dengan kode unik untuk setiap undangan. 👥\n- **RSVP Management**: Create, Read, Update, Delete konfirmasi kehadiran tamu. 💌\n- **Comment System**: Sistem komentar untuk setiap RSVP. 💬\n- **Tracking System**: Melacak IP address dan browser info pengunjung website. 📊\n- **Export Data**: Download data dalam format CSV dengan filter pencarian. 📋\n- **Responsive UI**: Interface yang responsif menggunakan TailwindCSS. 📱\n- **Pagination**: Menampilkan data dengan dukungan paginasi. 📄\n- **Search \u0026 Filter**: Pencarian dan filter data berdasarkan nama, kode, atau kriteria lainnya. 🔍\n- **Invitation Page Management**: Kelola halaman undangan dengan mudah menggunakan tombol toggle. 📨✨\n\n## Struktur Project 🗂️\n\n```bash\nproject/\n├── app/\n│   ├── forms/         # Django forms untuk input validation\n│   ├── models.py      # Database models (User, Person, RSVP, Comment, Tracking)\n│   ├── views/         # View logic untuk setiap modul\n│   ├── urls.py        # URL routing\n│   └── utils.py       # Utility functions (pagination, CSV export)\n├── templates/         # HTML templates\n│   ├── partials/      # Reusable template components\n│   ├── registration/  # Django registation template components\n│   ├── _base.html     # Base template\n│   ├── trackings.html # Tracking management page\n│   ├── konfigs.html   # Invitation page configuration\n│   ├── persons.html   # Person or tamu management page\n│   ├── rsvps.html     # RSVP management page\n│   ├── users.html     # User management page\n│   └── wedding.html   # Wedding Invitation page\n├── static/            # Static files (CSS, JS, Images)\n├── data/              # Sample data files (JSON fixtures)\n└── Dockerfile         # Dockerfile for the app\n├── manage.py          # Django management script\n├── requirements.txt   # Python dependencies\n└── .env               # Environment variables\n```\n\n## Model Database 🗄️\n\n_NOTE: untuk memudahkan, saat ini database di set menggunakan sqlite. untuk mengubah ke database PostgreSQL, MySQL bisa diubah di file `rsvp/settings.py`._\n\n### User Model\n\n- Extends Django's AbstractUser\n- Mengelola autentikasi admin\n\n### Person Model\n\n- `code`: Kode unik untuk undangan (max 50 chars)\n- `name`: Nama tamu (max 255 chars)\n- `created_at`, `updated_at`: Timestamp\n\n### RSVP Model\n\n- `code`: Kode undangan (opsional, max 50 chars)\n- `name`: Nama tamu (max 255 chars)\n- `message`: Pesan dari tamu (TEXT, nullable)\n- `attendance`: Status kehadiran (YES, NO, MAYBE YES, MAYBE NO)\n- `is_active`: Status aktif (Boolean, default True)\n- `created_at`, `updated_at`: Timestamp\n\n### Comment Model\n\n- `rsvp_id`: Foreign key ke RSVP\n- `name`: Nama komentator (max 255 chars)\n- `comment`: Isi komentar (TEXT, required)\n\n### Tracking Model\n\n- `code`: Kode tamu (opsional)\n- `ip`: IP address pengunjung\n- `browser_info`: Informasi browser\n- `is_active`: Status aktif\n- `created_at`, `updated_at`: Timestamp\n\n## Instalasi 🛠️\n\n1. Clone Repository: 📂\n\n   ```bash\n   git clone https://github.com/repodevs/rsvp.git\n   cd rsvp\n   ```\n2. Buat Virtual Environment: 🐍\n\n   ```bash\n   python -m venv venv\n   source venv/bin/activate  # Linux/Mac\n   # atau\n   venv\\Scripts\\activate     # Windows\n   ```\n3. Install Dependencies: 📦\n\n   ```bash\n   pip install -r requirements.txt\n   ```\n4. Buat `.env` file: 📝\n\n   ```bash\n   cp env.example .env\n   ```\n\n   Update isi dari .env sesuai kebutuhan:\n\n   ```\n   DEBUG=True\n   ```\n5. Setup Database and Static Files: 🗄️\n\n   ```bash\n   python manage.py makemigrations\n   python manage.py migrate\n   python manage.py collectstatic --noinput\n   ```\n6. Load Sample Data (Opsional): 📊\n\n   ```bash\n   python manage.py loaddata data/*.json\n   ```\n7. Create Superuser: 👑\n\n   ```bash\n   python manage.py createsuperuser\n   ```\n8. Run Development Server: 🚀\n\n   ```bash\n   python manage.py runserver\n   ```\n9. Akses Aplikasi: 🌐\n\n   - Website: [http://localhost:8000/](http://localhost:8000/)\n   - Dashboard: [http://localhost:8000/app/](http://localhost:8000/app/)\n   - Django Admin Panel: [http://localhost:8000/admin/](http://localhost:8000/admin/)\n\n## Endpoints 🚪\n\n### Dashboard Endpoints\n\n- `/app/`: Dashboard untuk semua fitur. 📋\n\n### API Endpoints\n\n- GET `/api/configs/`: API for Invitation Page configuration. ⚙️\n\n## Fitur Export CSV 📊\n\nAplikasi mendukung export data ke format CSV dengan fitur:\n\n- Export semua data atau hasil pencarian\n- Filename otomatis dengan timestamp\n- Header kolom yang user-friendly\n- Handling untuk berbagai tipe data (datetime, boolean, null values)\n\n## UI Components 🎨\n\n- **Responsive Design**: Menggunakan TailwindCSS untuk tampilan yang responsive\n- **Modal System**: Modal untuk view, edit, dan delete data\n- **Search \u0026 Filter**: Real-time search dengan parameter query\n- **Status Indicators**: Visual indicator untuk status kehadiran dan aktivitas\n- **Action Buttons**: Tombol aksi yang intuitif untuk setiap operasi\n\n## Development Note 🛠️\n\n### Menambah Data Sample:\n\n```bash\n# Generate data sample baru\npython manage.py loaddata data/*.json\n```\n\n### Generate TailwindCSS\n\n```bash\nnpx @tailwindcss/cli -i ./static/src/input.css -o ./static/src/output.css --watch\n```\n\n## Screenshots 📸\n\n## Login and Registration\n\n![Login](./static/screenshots/01_login.jpeg)\n\n![Registration](./static/screenshots/02_register.jpeg)\n\n### Dashboard\n\n![Dashboard](./static/screenshots/03_dashboard.jpeg)\n\n### Person Management\n\n![Person List](./static/screenshots/04_01_person.jpeg)\n\n![Person Add](./static/screenshots/04_02_add_person.jpeg)\n\n### RSVP Management\n\n![RSVP List](./static/screenshots/05_01_rsvp.jpeg)\n\n![RSVP edit](./static/screenshots/05_03_edit_rsvp.jpeg)\n\n![RSVP csv](./static/screenshots/05_02_rsvp_csv.jpeg)\n\n### Tracking\n\n![Tracking](./static/screenshots/06_tracking_delete.jpeg)\n\n### User Management\n\n![User](./static/screenshots/07_user.jpeg)\n\n### Invitation Page Configuration\n\n![Konfig](./static/screenshots/08_config.jpeg)\n\n## Invitation Page Result\n\n![Invitation Page](./static/screenshots/09_invitation.jpeg)\n\n## License 📜\n\nThis project is licensed under the MIT License. 🏛️\n\n## Contributing 🤝\n\nContributions are welcome! Please fork the repository and submit a pull request. 🚀\n\n## Contact 📧\n\nFor questions or support, please contact [edi20240200005@sibermu.ac.id](mailto:edi20240200005@sibermu.ac.id \"send email to author\"). 💌\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frepodevs%2Frsvp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frepodevs%2Frsvp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frepodevs%2Frsvp/lists"}