UniEvent is a collaborative full-stack web platform designed to centralize the discovery, organization, approval, and attendance management of university events.
The platform provides dedicated functionality for students, event organizers, and administrators, covering the complete workflow from publishing an event to participant registration and QR-based check-in.
The application interface is currently available in Romanian.
Open the live application | Watch the complete project demonstration
The Render service may require a short startup period after being inactive.
University events are often promoted through separate communication channels such as social media, email, physical posters, and internal announcements. This makes events harder to discover and creates additional work for organizers.
UniEvent brings these activities into a single platform. Students can discover events, filter them by relevant criteria, register, save favorites, receive digital tickets, and submit feedback. Organizers can create and manage events, monitor participation, and validate attendees using QR codes.
- Account registration and email/password authentication
- Google authentication
- Event discovery, search, and filtering
- Event details, attachments, and map locations
- Event registration with participant capacity validation
- Favorite event management
- Digital tickets with unique QR codes
- Notifications and profile management
- Event reviews and ratings
- Organizer role requests
- Dedicated organizer dashboard
- Event creation, editing, and management
- Draft, approval, publication, and rejection workflow
- Event poster and document uploads
- Location selection and external map integration
- Participant and event statistics
- QR-based ticket validation and attendee check-in
- User and organizer request management
- Event approval and rejection
- University structure management
- Access to the Django administration interface
Students can browse available events, search by name, apply filters, inspect event information, access attached materials, and open the event location.
Organizers can create events, save drafts, submit events for approval, manage published events, upload promotional materials, and configure participation limits.
Each registration generates a digital ticket with a unique QR code. Organizers can scan tickets at the event entrance, validate registrations, prevent duplicate check-ins, and monitor participation statistics.
| Role | Main capabilities |
|---|---|
| Student | Discover events, register, manage favorites, access tickets and submit reviews |
| Organizer | Create and manage events, view statistics and validate QR tickets |
| Administrator | Review organizer requests, approve events and manage platform data |
| Area | Technologies |
|---|---|
| Frontend | React, Vite, Material UI, Axios, React Router |
| Backend | Python, Django, Django REST Framework |
| Authentication | JWT, Google OAuth |
| Database | PostgreSQL, Neon |
| Media storage | Cloudinary |
| Maps and QR | Leaflet, OpenStreetMap, QR Code, html5-qrcode |
| Deployment | Render |
| Testing | Postman, Pytest, Playwright, OWASP ZAP |
| Project management | Jira, Confluence, Figma |
UniEvent uses a separated frontend and backend architecture:
React web application
|
| REST API / JSON
v
Django REST Framework
|
+---- Neon PostgreSQL
|
+---- Cloudinary media storage
The backend exposes REST endpoints for users, events, interactions, authentication, tickets, notifications, and organizer functionality. The frontend communicates with these endpoints through a configured Axios client and attaches JWT access tokens to authenticated requests.
More information about the technical decisions and development workflow is available in the development process documentation.
| Document | Description |
|---|---|
| Development Process | Requirements, technical decisions, deployment and project organization |
| Testing | Manual testing, automated tests, security evaluation and test commands |
| Team and Contributions | Team members, primary roles, and areas of coordination |
UniEvent was developed collaboratively by a five-member team. Team members contributed across backend development, frontend development, database design, UI/UX, testing, deployment, documentation, and project management.
Individual responsibilities are described in Team and Contributions.
View installation instructions
This section describes how to install and run UniEvent locally, primarily on Windows.
The application consists of two parts:
- Backend — Django and Python
- Frontend — React and Node.js
Before cloning the repository, make sure the following software is installed.
Python 3.10 or newer is recommended.
Check the installed version:
python --versionIf Python is not installed, download it from python.org.
On Windows, enable the Add Python to PATH option during installation.
The latest Node.js LTS version is recommended.
Check the installed versions:
node --version
npm --versionIf Node.js is not installed, download it from nodejs.org and use the standard installation settings.
The current version of UniEvent uses PostgreSQL. You can use a local PostgreSQL instance or a hosted PostgreSQL database such as Neon.
You will need a valid PostgreSQL connection URL.
git clone https://github.com/Uni-Event/uni-event.git
cd uni-eventNavigate to the backend directory:
cd backendThe directory should contain the requirements_new.txt file.
python -m venv envWindows PowerShell:
env\Scripts\Activate.ps1Windows Command Prompt:
env\Scripts\activate.batLinux or macOS:
source env/bin/activateIf PowerShell reports that script execution is disabled, run:
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedRestart PowerShell and activate the environment again.
python -m pip install --upgrade pip
python -m pip install -r requirements_new.txtCreate a file named .env inside the backend directory:
DATABASE_URL=postgresql://USER:PASSWORD@HOST:5432/DATABASE
GOOGLE_CLIENT_ID=your_google_oauth_client_id
CSRF_TRUSTED_ORIGINS=http://localhost:5173
CLOUDINARY_URL=cloudinary://API_KEY:API_SECRET@CLOUD_NAMEThe Google OAuth and Cloudinary values are required when using their corresponding features.
Never commit the .env file or credentials to the repository.
Apply the database migrations:
python manage.py migrateCreating an administrator account is recommended:
python manage.py createsuperuserpython manage.py runserverThe backend will run at:
http://127.0.0.1:8000/
Available development pages include:
Django Admin: http://127.0.0.1:8000/admin/
Swagger API: http://127.0.0.1:8000/swagger/
ReDoc API: http://127.0.0.1:8000/redoc/
Open a second terminal and navigate to the frontend directory:
cd uni-event/frontendInstall the frontend dependencies:
npm installCreate a file named .env inside the frontend directory:
VITE_API_BASE_URL=http://127.0.0.1:8000Start the frontend development server:
npm run devThe frontend will normally run at:
http://localhost:5173/
The port may be different if port 5173 is already in use. Check the terminal
for the generated address.
The authentication page should appear after opening the frontend address.
After the initial installation, start the two services in separate terminals.
Backend:
cd uni-event/backend
env\Scripts\Activate.ps1
python manage.py runserverFrontend:
cd uni-event/frontend
npm run devBoth the backend and frontend must run simultaneously.
Check whether Python is available:
python --version
python -m pip --versionIf it is not recognized, make sure Python was added to the system PATH.
Run:
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedThen restart PowerShell and activate the environment again.
- Make sure the backend is running.
- Verify
VITE_API_BASE_URLinfrontend/.env. - Open the browser developer console and check for connection errors.
- Clear the application's local storage and reload the page if an invalid authentication session was previously stored.
- Make sure the virtual environment is active.
- Reinstall the dependencies from
requirements_new.txt. - Verify the
DATABASE_URLvalue. - Check that the PostgreSQL database is accessible.
- Run
python manage.py migrateagain.
- Backend and frontend services must run simultaneously during local development.
- The local environment uses its own database and configuration.
- The publicly deployed version is available through the UniEvent live application.
- Testing setup and commands are available in the testing documentation.
UniEvent is a functional collaborative prototype deployed for demonstration and portfolio purposes. The current version includes the primary student, organizer, and administrator workflows.