# 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](showcase/01_api_unreachable.png) | ![Login Screen](showcase/02_login.png) | ![Base URL Change](showcase/02_login_base_url_change.png) | | ---------------------------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------------- | | Error screen, showne whenever the API becomes unreachable. | Login screen for user authentication. | Screen to update the API base URL, available from the login, register & API unreachable pages. | | ![Register Screen](showcase/03_register.png) | ![Month View](showcase/04_month_view.png) | ![Day View](showcase/05_day_view.png) | | -------------------------------------------- | ----------------------------------------- | ------------------------------------------------- | | User registration screen. | Monthly calendar view to browse events. | Daily event view with event details for that day. | | ![Edit Duration Event](showcase/06_duration_event_edit.png) | ![Edit Instant Event](showcase/07_instant_event_edit.png) | ![Invite User to Event](showcase/08_invite_user_to_event.png) | | ----------------------------------------------------------- | --------------------------------------------------------- | ------------------------------------------------------------- | | Edit screen for duration-based events. | Edit screen for instant events. | Interface for inviting users to an event. | | ![Duration Event Details](showcase/09_duration_event_details.png) | ![Instant Event Details](showcase/10_instant_event_details.png) | ![Categories Overview](showcase/11_categories.png) | | ----------------------------------------------------------------- | --------------------------------------------------------------- | -------------------------------------------------- | | Detailed view of a duration-based event. | Detailed view of an instant event. | List of event categories of the user. | | ![Create New Category](showcase/12_new_category.png) | ![Updated Categories](showcase/13_categories_with_new.png) | ![Settings Screen](showcase/14_settings.png) | | ---------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------------------------- | | Form to create a new category. | Updated list with a newly added category. | Settings menu for app configuration. Only available when logged in. | | ![Notification: Invite](showcase/15_notification_invite_bob.png) | ![Invite Preview](showcase/16_invite_event_details_preview.png) | ![Notification: Invite Accepted](showcase/17_notification_invite_accepted_bob.png) | | ---------------------------------------------------------------- | --------------------------------------------------------------- | ---------------------------------------------------------------------------------- | | Notification about an (incomming) event invite. | Preview of the event from the invite. | Notification for the (incomming) invite after accepting (already marked read). | | ![Day View with Invite](showcase/18_day_view_invited_event_bob.png) | ![Invited Event Details](showcase/19_invited_event_details_bob.png) | ![Notification Accepted John](showcase/20_notification_invite_accepted_john.png) | | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | | Day view showing the invited event. | Details of an event the user was invited to. | Notification about user having accepted an outgoing invite (from the invitor's account). | | ![Notifications Cleared](showcase/21_notifications_cleared.png) | | --------------------------------------------------------------- | | Screen showing cleared notifications. |