Event Management Admin
The admin side of an event mangagement system build with MERN Stack
Click to see images
### Login
Authentication with sessions
![login page](assets/login.png)
### Users
Users page gives an overview of all the users registered. We can search and add
users. A report of all the students as a CSV can also be generated.
![users page](assets/users.png)
![user modal](assets/user_modal.png)
![add user](assets/add_user.png)
### Events
Events page contains all the events filtered by day. We can add new events here,
edit the existing ones or generate reports for each event.
![events page](assets/events.png)
![edit event](assets/event_modal.png)
![add event](assets/add_event.png)
### Payments
A list of all the payments made is show on the payments page. We can search
these payments based on the user's roll number or the username of the admin
who registered the payement.
![payments](assets/payments.png)
Web
react
as the front end framework
chakra-ui
a component library
react-icons
for icons
swr
for data fetching
downloadjs
to trigger downloads
Server
express
server
express-sessions
for managing sessions
connect-mongo
to store the sessions in the database
mongodb
as database
mongoose
ODM
validator
for validation
faker
for seeding the database
- Others
argon2
for hashing
pdf-creator-node
for generating reports
rword
for generating passowrds
nodemailer
for sending mails
Development Setup
Prerequisites
Ensure you have the following installed:
- Git
- Node.js
- You also need to have mongodb cluster url and sendgrid api and password
Project Setup Guide
Frontend
-
Navigate to web folder and install dependencies
cd web
npm i
-
Start the react app
npm start
Backend
-
Navigate to web folder and install dependencies
cd server
npm i
-
Add .env in the root directory. Here's an example env file for you.
MONGO_URL =
senderEmail =
senderPass =
sendgridKey =
-
Start the backend server
npm run dev
To add seed data to the database
-
Navigate to server folder and run file seed.js
cd server
node seed.js
- Then for login use credentials are:
- Username: hello
- Password: generalk123