# Swecha Event Management System
## Main modules
1. Registration, Login, Signup
2. User management
3. Event management
4. Certificate generator
5. Payment Gateway
6. Stats page
- Visualise existing user data, event data and download the stats
## Features
1. Register and Login users
2. Update profiles
3. Events:
- List all events
- List attended events
- List registered events
- Create an event
- Update an event
- Delete an event
- Assign speakers and volunteers to an event
- Limit event registration based on
- College
- Place
- Role
4. Roles
- Assign a role (commitee and admin)
- Participant
- Volunteer
- Speaker
- Functional Commitee
- Admin
- Promote and demote above roles
5. Certificates
- Upload template (Store as file in Disk)
- Update template
- Delete template
6. Payment gateway
- PhonePay
- Card
## User Roles
1. Participant
- SignUP/Login
- List all events
- Register to an event
- Update profile info
- Download certificates
2. Member
- Volunteer, Speaker (in addition to the above..)
- Upload certificate
- Attendance
- Commitee (in addition to the above..)
- Create, Update, Delete event
- Promote or Demote roles
- Deactivate or Delete user
3. Admin user (Super user)
- Complete access to data and operations
## Data Schema
#### Users (SignUp and Profile)
- UserID (autogenerated and non editable)
- Name
- Date of birth
- Email
- Phone
- Education qualification
- Education qualified year
- College
- Branch
- Occupation and company (if employed)
- Current Place
- Area of interest
- System availability (Choose from given list)
- Desktop
- Laptop
- Broadband availability (Choose from given list)
- Dongle/Mobile
- Wifi
- How do you know swecha? (Choose from given list)
- Role (Editable by commitee and admin)
- ProfilePicID
#### Events
- EventID (autogenerated and non editable)
- Event Name
- Category (Technical, Social...)
- Activity
- Talk
- Workshop
- Hackathon
- Speakers [UserIDs]
- Volunteers [UserIDs]
- Organisers [UserIDs]
- Date
- StartTime
- EndTime
- Place
- Venue
- Amount
- CertID
#### Payments
- UserID
- EventID
- PaymentID
## Tech Stack
1. UI
2. Backend
- Django
- Registration
- Authentication (Login)
- Autherisation (Role access)
- CRUD APIs
3. Storage
- Disk
- ProfileImages
- Certificates
- Event Images
- SQL
- Users
- Events
- Payments
4. Deployment
- Docker
- Kubernetes (if needed to scale)