React 19 · TypeScript · Vite · Express · SQLite · Docker · PWA
Organize events, manage guests, track tasks and set reminders — with a beautiful themed dashboard, admin panel and a mobile-ready experience.
Features · Quick Start · Screenshots · Tech Stack · Documentation · License
For end users
- 📅 Events CRUD — create, edit and browse events with images, dates and locations
- 👥 Guests & RSVP — per-event guest lists with confirmation status
- ✅ Tasks & Reminders — organize every event with checklists and alerts
- 🗓️ Mini calendar — real-time calendar synced with upcoming events
- 🔔 Toast notifications for every action (create / update / delete)
- 🎨 10 UI themes (light, dark, pastel, sunset, ocean, sakura…) persisted per user
- 📱 Installable PWA + splash screen — works like a native mobile app
For administrators
- 🛡️ Double-layer security — role checks in both API middleware and UI
- 👤 User management panel — list accounts, promote/demote admins
- 📊 Global KPIs — users, events, guests, tasks and reminders at a glance
Under the hood
- ⚡ REST API with JWT auth, scrypt password hashing and Zod input validation
- 🚦 Rate limiting on auth endpoints +
helmetsecurity headers - 💾 Zero-config SQLite (via
node:sqlite— no external database server needed) - 🐳 One-command Docker deploy
- 🔒 Fail-fast secrets: refuses to boot in production without a proper
JWT_SECRET
git clone https://github.com/YOUR_USERNAME/defensa-uwu.git mievento
cd mievento
docker compose up --build| Service | URL |
|---|---|
| Web app | http://localhost:8080 |
| REST API | http://localhost:3001/api/health |
npm install
cp .env.example .env # adjust values if you want
npm run dev # starts Vite (5173) + API (3001) togetherFull production deployment guides (Vercel + Render, VPS, Docker) in SETUP.md.
| Role | Password | |
|---|---|---|
| Admin | maria@mievento.com |
demo1234 |
| User | carlos@mievento.com |
demo1234 |
Demo data is seeded automatically on first run. Hide the hint on the login screen with VITE_SHOW_DEMO=false.
📍 Place your captures in
docs/screenshots/and they will render here.
| Dashboard | Landing | Admin panel |
|---|---|---|
![]() |
![]() |
![]() |
| Layer | Technology |
|---|---|
| Frontend | React 19, TypeScript, Vite, Tailwind CSS v4, shadcn/ui, Lucide icons |
| Backend | Node.js ≥22.5, Express 5, SQLite (node:sqlite, zero external DB), Zod |
| Auth | JWT (HMAC-SHA256) + scrypt password hashing + rate limiting |
| Security | Helmet headers, double-layer RBAC, parameterized SQL |
| Deploy | Docker / docker-compose, Vercel (web) + Render (API), any Node VPS |
| File | Contents |
|---|---|
| SETUP.md | Step-by-step installation & production deployment |
| .env.example | Every environment variable explained |
| SELLING-GUIDE.md | Marketplace listing kit (pricing tiers, platforms) |
| CHANGELOG.md | Release history |
├── public/ # PWA assets served as-is (videos, favicon)
├── src/
│ ├── components/ # React components (dashboard, layout, ui/)
│ ├── context/ # AuthContext (JWT session + roles)
│ ├── pages/ # Landing · Dashboard · Login
│ ├── lib/api.ts # Typed REST client
│ └── data/ # Static content helpers
├── server/
│ ├── routes/ # auth · events · guests · tasks · reminders · admin
│ ├── db.js # SQLite schema + auto-seed demo data
│ └── index.js # Express app (helmet · rate-limit · CORS)
├── Dockerfile # Production container
└── docker-compose.yml # One-command full stack
All endpoints are prefixed with /api. Authenticated requests require
Authorization: Bearer <token>.
| Method | Endpoint | Access |
|---|---|---|
| POST | /api/auth/register · /api/auth/login |
public (rate-limited) |
| GET | /api/auth/me |
user |
| GET/POST | /api/events |
user |
| PUT/PATCH/DELETE | /api/events/:id |
owner / admin |
| CRUD | /api/events/:id/guests · /tasks · /reminders |
owner / admin |
| GET | /api/stats |
user |
| GET/PATCH | /api/admin/users · /users/:id/role |
admin |
| GET | /api/admin/overview |
admin |
Released under the MIT License.
This product includes source code, documentation and demo seed data. For setup questions please refer to SETUP.md.


