Skip to content

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Repository files navigation

NexterDay Events

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.


Features

  • 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.

🎥 Demo

Watch a short walkthrough of NexterDay Events showcasing authentication, event browsing, event details, profile management, and registration flow.

▶️ Watch Demo


Screenshots


Tech Stack

  • 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

Project Architecture

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.

Project Structure

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

Getting Started

1. Clone the Repository

git clone https://github.com/iot-lab-kiit/NexterDayEventsApp.git

2. Configure Local Environment

Create 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"

3. Build & Run

  1. Open the project in Android Studio.
  2. Let Gradle sync and download the required dependencies.
  3. Connect a physical Android device or start an emulator running API level 28 or higher.
  4. Click Run in Android Studio to compile and launch the debug build.

Requirements

  • 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

Contributing

Contributions make the open-source community an amazing place to learn, inspire, and create.

  1. Fork the Project.
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature).
  3. Commit your Changes (git commit -m 'Add some AmazingFeature').
  4. Push to the Branch (git push origin feature/AmazingFeature).
  5. Open a Pull Request.

Developed By

IoT Lab, KIIT University


License

Distributed under the MIT License. See LICENSE for more information.

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages