Dicoding Event is an Android application designed to help users discover, save, and participate in various events hosted on the Dicoding platform. The app offers a seamless user experience with features tailored to enhance event discovery and participation.
- Upcoming Events: View a list of upcoming events.
- Finished Events: Explore completed events.
- Favorites: Save favorite events for offline access using Room Database.
- Event Details:
- Comprehensive information about each event, including:
- Location
- Schedule
- Description
- UI Features:
- ImageView for event cover.
- TextView for event details (name, organizer, time, quota, and description).
- FloatingActionButton to add events to favorites.
- Button for event registration.
- Error Page with retry functionality.
- ProgressBar for loading indicators.
- Comprehensive information about each event, including:
- Settings:
- Dark Mode for a comfortable viewing experience at night.
- Daily Reminder for notifications about new events.
- Search: Quickly find events by keyword.
Before starting, ensure you have the following:
- Android Studio (Arctic Fox or newer)
- Latest Gradle version
- Java Development Kit (JDK) version 11 or newer
-
Clone the repository:
git clone https://github.com/whdhdyt21/Dicoding-Event.git
-
Open the project in Android Studio.
-
Configure the
local.properties
file by adding the following:BASE_URL=https://event-api.dicoding.dev/
Note: The
local.properties
file stores sensitive local configurations and is excluded from version control. -
Build and run the application in Android Studio.
- Kotlin: Main programming language for development.
- MVVM Architecture: Ensures separation of concerns for better maintainability.
- Retrofit: Handles REST API communication.
- Room Database: Manages local storage of favorite events.
- LiveData & ViewModel: Provides reactive and lifecycle-aware data management.
- WorkManager: Schedules daily reminder notifications.
- Material Design: Delivers a modern and user-friendly interface.
Contributions are welcome! If you’d like to improve the project, follow these steps:
- Fork this repository.
- Create a feature branch:
git checkout -b feature/your-feature-name
- Commit your changes:
git commit -m "Add feature: your-feature-name"
- Push the branch:
git push origin feature/your-feature-name
- Open a pull request on GitHub.
This project is licensed under the MIT License.