event-management-frontend/README.md

7.3 KiB
Raw Blame History

Event Management Frontend

The Event Management Frontend is a native Android application developed in Kotlin. This app provides a comprehensive calendar-based event management system designed for seamless user interaction.

This project was created as the final assignment for AP7PD and AP7MP subjects.

It integrates with a custom backend REST API to manage users, events, attendees, and categories effectively.

Overview / Key Features

  • Monthly Calendar View: View events in a grid layout by weeks and days.
  • Daily View: Easily browse and manage daily events.
  • Event Management: Create, edit, and delete events with support for categories and attendees.
  • User Authentication: Register and log in with robust access and refresh token support, ensuring secure and seamless user sessions.
  • Error Handling: Gracefully handles API errors, including scenarios where the backend is unreachable.

Backend requirements

The application requires a running backend API for full functionality. The backend is implemented using FastAPI in Python.

You can find the source code and detailed deployment instructions for the backend API at: Event Management Backend Repository.

Tip

The app supports dynamic configuration of the API base URL, allowing you to deploy the backend on any server or cloud provider of your choice. If you wish to test the app from android studio, you can deploy the backend locally (http://localhost:8000) and set the base URL to http://10.0.2.2:8000. This will allow the Android emulator to access the local backend server. Note that this is also the default value.

Showcase

Below is a showcase of key features and screens in the application:

📶 API Unreachable Error screen, shown whenever the API becomes unreachable.
🔒 Login Screen Login screen for user authentication, first screen you will face when you start the app for the first time.
🔧 Base URL Change Screen to change the API base URL, available from login, register & API unreachable pages (doesn't require being signed in).
API Unreachable Login Screen Base URL Change
📝 Register Screen User registration screen.
📆 Month View Monthly calendar view to browse events, the screen shown immediately after login.
📅 Day View Daily event view, listing the events for that day.
Register Screen Month View Day View
Edit Duration Event Edit screen for duration-based events.
Edit Instant Event Edit screen for instant events.
📨 Invite User to Event Interface for inviting users to an event.
Edit Duration Event Edit Instant Event Invite User to Event
⏱️ Duration Event Details Detailed view of a duration-based event.
🔍 Instant Event Details Detailed view of an instant event.
📂 Categories Overview List of event categories of the user.
Duration Event Details Instant Event Details Categories Overview
Create New Category Form to create a new category or edit an existing one.
🆕 Updated Categories Overview Updated list with a newly added category.
⚙️ Settings Screen Settings menu for configuring user details & the base url. This screen is only available to logged in users.
Create New Category Updated Categories Settings Screen
🔔 Notification: Invite Notification about an incoming event invite.
👀 Invite Preview Preview of the event from the invite (after clicking the eye button).
Notification: Accepted That same notification for the invite, after acceptance. This notification also doesn't have the orange bar on the left, meaning it's marked as read.
Notification: Invite Invite Preview Notification: Accepted
🗑️ Notifications Cleared Screen showing cleared notifications, after the user has swiped all the notifications to the right, deleting them.
Notifications Cleared