NexterDay Events is a centralized event discovery and exploration platform designed for students at KIIT University. Instead of scrolling through dozens of fragmented WhatsApp groups, Instagram pages, emails, or physical posters, students can discover and explore events organized by various university societies all in one clean, modern application.
- Google Authentication: Seamless sign-in using Firebase Authentication.
- Discover & Browse Events: Browse upcoming and popular events from all KIIT societies in one unified feed.
- Categorized Event Views: Filter events by tags such as Technology, IoT, and others to find interests quickly.
- Detailed Event Information: View comprehensive event details, including organizers, deadlines, schedules, venues, and descriptions.
- Recently Viewed Events: Locally track and view event history to quickly return to recently visited event detail screens.
- Favourite Events: Keep track of events by saving them to your favorites list.
- Defensive & Safe Redirects: Redirect users to external event/registration websites dynamically with built-in URL validation.
- Modern Jetpack Compose UI: Clean UI built on Material 3 components and styled with premium typography.
Watch a short walkthrough of NexterDay Events showcasing authentication, event browsing, event details, profile management, and registration flow.
|
|
|
|
|
- Language: Kotlin
- UI Framework: Jetpack Compose (Material 3)
- Architecture: MVVM (Model-View-ViewModel) Pattern
- Dependency Injection: Dagger Hilt
- Networking: Retrofit & OkHttp (with HTTP Logging Interceptor)
- Concurrency: Kotlin Coroutines & Flow
- Authentication: Firebase Auth (with Google Sign-In)
- Pagination: Jetpack Paging 3 (for paginated event loading)
- Image Loading: Coil
- Animation: Lottie Compose
- Navigation: Jetpack Navigation Compose
NexterDay Events follows modern Android development best practices using the MVVM (Model-View-ViewModel) architectural pattern. The codebase is organized cleanly to enforce separation of concerns:
- Model Layer: Plain Kotlin data classes representing backend payloads (
data/model). - Remote Layer: Retrofit endpoints for service communication (
data/remote). - Repository Layer: Repositories (
data/repo) coordinating remote API requests and local storage logic (such as viewed history). - ViewModel Layer: State-holders (
vm) transforming repository flows into Compose UI states using structured flows. - View Layer: Declarative composables (
view) for styling layouts and handling user interactions.
NexterDayEventsApp/
├── app/
│ └── src/
│ └── main/
│ └── java/in/iotkiit/nexterdayevents/
│ ├── data/
│ │ ├── model/ # Data classes & schemas
│ │ ├── remote/ # Retrofit API services
│ │ └── repo/ # Repositories (local & remote data)
│ ├── di/ # Dagger Hilt dependency modules
│ ├── navigation/ # Type-safe screen routing definitions
│ ├── state/ # Network UI state wrappers
│ ├── ui/theme/ # Theme, colors, and font styles
│ ├── view/
│ │ ├── components/ # Reusable compose widgets
│ │ └── screens/ # Screen views (Home, Login, Profile, etc.)
│ └── vm/ # ViewModels holding UI state
├── assets/
│ └── screenshots/ # App screenshot assets
└── README.md # Repository documentation
git clone https://github.com/iot-lab-kiit/NexterDayEventsApp.gitCreate a local.properties file in the root of the project (if it doesn't already exist) and define the backend variables:
FIREBASE_TOKEN="YOUR_FIREBASE_WEB_CLIENT_ID"
BASE_URL="https://your-api-endpoint.com/api/"
BACKEND_VERIFY_URL="https://your-api-endpoint.com/api/auth/verify"
BACKEND_NOTIFICATION_URL="https://example.com/notification"- Open the project in Android Studio.
- Let Gradle sync and download the required dependencies.
- Connect a physical Android device or start an emulator running API level 28 or higher.
- Click Run in Android Studio to compile and launch the debug build.
- Android SDK Version: Min SDK 28 (Android 9.0 Pie) / Target SDK 34 (Android 14)
- Java Development Kit: JDK 17
- Android Studio: Koala / Ladybug or newer recommended
Contributions make the open-source community an amazing place to learn, inspire, and create.
- Fork the Project.
- Create your Feature Branch (
git checkout -b feature/AmazingFeature). - Commit your Changes (
git commit -m 'Add some AmazingFeature'). - Push to the Branch (
git push origin feature/AmazingFeature). - Open a Pull Request.
IoT Lab, KIIT University
Distributed under the MIT License. See LICENSE for more information.




