Event management for National University – Mall of Asia (NU MOA).
Every college, the Student Council and offices such as Career Services run their events here.
|
|
|
|
flowchart TD
A([Manager creates event]) --> B{Admin review}
B -- Rejected --> A
B -- Approved --> C[Registration opens]
C --> D[Attendee registers<br/>and picks a seat]
D --> E[Staff scans QR ticket<br/>at check-in]
E --> F[Exit QR verified]
F --> G([Certificate + feedback])
| Technology | Purpose | |
|---|---|---|
| Nodemon | Auto-restart dev server | |
| ESLint | Linting (react-app config) | |
| Jest + node:test | App and server tests |
Note
A React app (this folder) talks to an Express + MongoDB server (server/). See SYSTEM_FLOW.md for how the parts work together.
1. Clone and install
git clone https://github.com/Bibimbap101/eventify.git
cd eventify
npm install
npm --prefix server install2. Set up the server
You need MongoDB, either installed locally or a free MongoDB Atlas database.
Create server/.env with at least these two lines:
MONGODB_URI=mongodb://127.0.0.1:27017/eventify
JWT_SECRET=any-long-random-text
Optional: PORT (default 5000), CLIENT_URL (default https://eventifys.vercel.app; set it to http://localhost:3000 locally),
JWT_EXPIRES_IN (default 7d), and SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, MAIL_FROM
for password-reset and announcement emails (without them the email prints in the server console).
On hosts that block SMTP ports, such as Render's free plan, set BREVO_API_KEY and MAIL_FROM instead,
and emails go through Brevo's HTTP API. MAIL_FROM must be a sender verified in Brevo.
3. Load demo data (optional)
Add SEED_ADMIN_EMAIL, SEED_ADMIN_PASSWORD and SEED_PASSWORD_SUFFIX to server/.env, then:
npm --prefix server run seed[!WARNING] Seeding wipes every event, registration and non-admin account in that database first.
4. Run it
Start the server and the app in two terminals:
npm run servernpm startThe app runs at http://localhost:3000.
5. Run the tests
npm testnpm --prefix server test[!TIP] The server's data-rule tests need a local MongoDB (or
MONGODB_TEST_URI). They use a throwawayeventify_rules_testdatabase and are skipped when no MongoDB is running.









