# 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](https://git.itsdrike.com/ap7pd/event-management-backend). > [!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 > () 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