Complete guide to user roles, permissions, and step-by-step workflows for managing large-scale college festivals
The Kumaraguru Events Portal manages multiple events and workshops. The system uses a role-based access control (RBAC) model with two layers:
| Admin Group | Sidebar Sections | Settings Access | Email Reports |
|---|---|---|---|
| Super Admin | All Sections (*) | All settings | All reports |
| Developer Admin | Dashboard Analytics Settings Users Groups Activity Log Receipts Email Reports | All settings | All reports |
| Events Admin | Dashboard Analytics Events Settings Email Reports | Categories, Sub-categories | Events only |
| Workshops Admin | Dashboard Analytics Workshops Settings Email Reports | Categories, Sub-categories | Workshops only |
| Cashier Admin | Dashboard Analytics Payments Settings | Razorpay Accounts | None |
| Forms Admin | Dashboard Analytics Contribution Forms | None | None |
This is the default role for every new user. Here's everything a participant can do:
Same flow as events. Workshops do not have team support, so registration is always individual.
Visit /dashboard to see:
payment_needed = true require your approval. Free events go directly to Published.
| Type | Description |
|---|---|
| SPECIFIC_EVENT_REGISTRATION | Payment for a single event |
| WORKSHOP_REGISTRATION | Payment for a workshop |
| COMBO_REGISTRATION | Payment for a combo bundle |
| PAYMENT_FORM | Contribution form payment |
| REFUND | Refund processed |
Each team member pays their own registration fee separately.
The team leader pays the total fee for all members in a single transaction.
| Component | Description |
|---|---|
| Base Amount | The registration fee set by the admin |
| Additional Charges | Any extra fees (e.g., materials) |
| Convenience Fee | Payment gateway processing fee |
| Discount Amount | Applied discounts or coupons |
| Final Amount | = Base + Additional + Convenience - Discount |
The system supports multiple Razorpay accounts. Different events/workshops can route payments to different accounts. This is useful when:
| Action | Participant | Event Coord. | Events Admin | Workshops Admin | Cashier Admin | Forms Admin | Developer Admin | Super Admin |
|---|---|---|---|---|---|---|---|---|
| Browse events/workshops | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Register for events | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
| Create events | — | — | Yes | — | — | — | — | Yes |
| Edit any event | — | — | Yes | — | — | — | — | Yes |
| Edit assigned event | — | Yes | Yes | — | — | — | — | Yes |
| Create workshops | — | — | — | Yes | — | — | — | Yes |
| Mark attendance | — | Yes | Yes | Yes | — | — | — | Yes |
| Manage rounds/winners | — | Yes | Yes | — | — | — | — | Yes |
| Approve paid events | — | — | — | — | Yes | — | — | Yes |
| Process refunds | — | — | — | — | Yes | — | — | Yes |
| View transactions | — | — | — | — | Yes | — | — | Yes |
| Create forms | — | — | — | — | — | Yes | — | Yes |
| Manage users | — | — | — | — | — | — | Yes | Yes |
| Manage admin groups | — | — | — | — | — | — | Yes | Yes |
| System settings | — | — | Partial | Partial | Partial | — | Yes | Yes |
| Activity log | — | — | — | — | — | — | Yes | Yes |
| Assign coordinators | — | — | — | — | — | — | Yes | Yes |
Categories group your events and workshops by type (e.g., "Technical", "Cultural", "Sports", "Gaming"). Every event and workshop must belong to a category.
| Field | Required | Description |
|---|---|---|
| Name | Yes | Category name (e.g., "Technical Events") |
| Description | No | Brief description of this category |
| Type | Yes | event, workshop, or both (default: both) |
| Active | Yes | Whether this category is visible (default: yes) |
both if the category applies to events and workshopsSub-categories provide a second level of organization under each category. For example, under "Technical" you might have "Coding", "Robotics", "Paper Presentation".
| Field | Required | Description |
|---|---|---|
| Name | Yes | Sub-category name (e.g., "Coding") |
| Description | No | Brief description |
| Parent Category | Yes | Which category this belongs to |
| Active | Yes | Whether this sub-category is visible (default: yes) |
Departments represent the academic/organizational units in your institution (e.g., "Computer Science", "Mechanical Engineering", "MBA"). They are used to track which department hosts an event and to categorize participants.
| Field | Required | Description |
|---|---|---|
| Department Name | Yes | Full name of the department |
| Department Code | No | Short code (e.g., "CSE", "MECH", "MBA") |
| Active | Yes | Whether this department is visible (default: yes) |
Institutions represent the colleges and organizations that participants belong to. When a participant registers, they select their institution from this list. This is especially important for inter-college festivals.
| Field | Required | Description |
|---|---|---|
| College Name | Yes | Full institution name (must be unique) |
| City | No | City where the institution is located |
| Active | Yes | Whether this institution is visible (default: yes) |
Venues are the physical locations where events and workshops take place — auditoriums, labs, seminar halls, open grounds, etc.
| Field | Required | Description |
|---|---|---|
| Venue Name | Yes | Name of the venue (e.g., "Main Auditorium") |
| Venue Block | No | Building or block location (e.g., "Block A", "Science Building") |
| Active | Yes | Whether this venue is available (default: yes) |
Razorpay is the online payment gateway. You need to configure at least one account if you have paid events or workshops. The system supports up to 2 active accounts, so different departments or sponsors can receive payments separately.
| Field | Required | Description |
|---|---|---|
| Label | Yes | Friendly name to identify this account (e.g., "CSE Department", "Main Festival Account") |
| Key ID | Yes | Razorpay API Key ID (starts with rzp_live_ or rzp_test_) |
| Key Secret | Yes | Razorpay API Secret (encrypted at rest in the database) |
| Active | Yes | Whether this account is available for use (default: yes) |
Email templates define the format and content of automated emails sent by the system — registration confirmations, payment receipts, team invitations, refund notifications, and more.
| Field | Required | Description |
|---|---|---|
| Name | Yes | Display name (e.g., "Registration Confirmation") |
| Slug | Yes | Unique identifier (e.g., registration-confirmation) |
| Subject | Yes | Email subject line (supports variables) |
| Body HTML | Yes | Email body in HTML (supports variables) |
| Category | Yes | One of: Registration, Payment, Team, Form, Account, Refund, System |
| Available Variables | No | List of template variables that can be used |
| Active | Yes | Whether this template is in use (default: yes) |
Use double curly braces in the subject and body to insert dynamic content:
{{firstName}} — First name{{lastName}} — Last name{{email}} — Email address{{eventTitle}} — Event name{{eventDate}} — Event date/time{{registrationLink}} — Registration URL{{amount}} — Payment amount{{transactionId}} — Transaction ID{{ticketNo}} — Ticket number{{refundAmount}} — Refund amountBulk registration lets you register many participants at once by uploading a CSV file. This is useful for pre-registering students from your own institution, handling offline signups, or migrating from another system. All bulk-registered users are auto-confirmed and marked as paid.
| Column | Required | Notes |
|---|---|---|
| first_name | Yes | Student's first name |
| last_name | Yes | Student's last name |
| Yes | Valid email, converted to lowercase | |
| phone | Yes | Exactly 10 digits |
| gender | No | MALE, FEMALE, or OTHER |
| school | Yes | School name |
| grade | Yes | Grade/class level |
| state | No | State/region |
| Column | Required | Notes |
|---|---|---|
| first_name | Yes | Student's first name |
| last_name | Yes | Student's last name |
| Yes | Valid email, converted to lowercase | |
| phone | Yes | Exactly 10 digits |
| gender | No | MALE, FEMALE, or OTHER |
| college | Yes | College/institution name |
| department | No | Department name |
| year | No | Year of study |
| state | No | State/region |
| Column | Required | Notes |
|---|---|---|
| first_name | Yes | First name |
| last_name | Yes | Last name |
| Yes | Valid email, converted to lowercase | |
| phone | Yes | Exactly 10 digits |
| gender | No | MALE, FEMALE, or OTHER |
| organization | Yes | Company or organization name |
| designation | No | Job title / designation |
| state | No | State/region |
[Contact Form] - Phone Number *). File upload fields are skipped in bulk registration.
A Super Admin or Developer Admin must add you to an admin group. You cannot self-promote. Contact your festival organizer to request admin access.
Yes! A user can belong to multiple admin groups at the same time. For example, you could be both an Events Admin and a Cashier Admin. Your sidebar will show all sections you have access to.
Paid events (with a registration fee) must be approved by a Cashier Admin before they can be published. Ask your Cashier Admin to go to Admin → Cashier → Approvals and approve your event.
The transaction is marked as Failed and the registration stays in Pending status. The participant can retry the payment. No money is deducted on failure.
A Cashier Admin initiates the refund from Admin → Payments → Refunds. The refund is processed through Razorpay and typically takes 5-7 business days to reflect in the participant's account.
No. Coordinators must have the Admin user role. A Super Admin or Developer Admin needs to first make the user an Admin, then assign them as a coordinator for specific events/workshops.
A combo bundles multiple events (2-25) into a single package at a discounted price. You make one payment and get registered for all events in the bundle. It's cheaper and faster than registering for each event individually.
There are two options depending on the event configuration:
The activity log records every admin action: event creation/edits, group changes, user management, payment processing, and more. It includes who performed the action and when. Only Developer Admin and Super Admin can view it.