Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions submissions/T094_Echo&Exit/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@

## Team Name & Team ID

- Team Name: Echo & Exit
- Team ID: T094

## Members and Roles

| Member | Role |
| --- | --- |
| Rohan| Backend architect and developer |
|Meenakshi | Idea and Presentation |
| Akshaya | Frontend |
| Parthiv | Data analysis on student records |
| RamTeja | Designing and presentation |

> Please update the list above with real member names and roles.

## Problem statement selected

This submission implements the Android application for the selected BuildFest challenge. (Problem statement not found in the repository; please replace this line with the exact problem statement you selected.)

## Tech stack used

- Android (mobile)
- Kotlin
- Gradle / Gradle Wrapper
- Android Studio (recommended for development)

## How to run the project (setup instructions)

Prerequisites

- JDK 11 or newer installed and JAVA_HOME set
- Android Studio (recommended) or Android SDK tools + platform tools
- An Android device or emulator

Recommended (Android Studio)

1. Open Android Studio.
2. Choose "Open" and select the `code/` folder inside this submission (path: `submissions/T094_Echo&Exit/code`).
3. Let Android Studio sync Gradle and download dependencies.
4. Run the app using the Run button or create an emulator and install to it.

Command line (Windows PowerShell)

From the root of this submission (where this README is located), run:

```powershell
# Build debug APK
.\code\gradlew.bat assembleDebug

# Install debug build to a connected device/emulator
.\code\gradlew.bat installDebug
```

Notes:

- If you get "permission" errors running the wrapper, ensure `gradlew.bat` is executable; running from PowerShell as a normal user should work on Windows.
- The build requires a valid Android SDK installation. If local SDK path is not detected, confirm `local.properties` in `code/` points to your SDK (`sdk.dir=`).
Binary file added submissions/T094_Echo&Exit/T094_Echo&Exit.pdf
Binary file not shown.
15 changes: 15 additions & 0 deletions submissions/T094_Echo&Exit/code/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild
.cxx
local.properties
Binary file added submissions/T094_Echo&Exit/code/Vida.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions submissions/T094_Echo&Exit/code/app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/build
59 changes: 59 additions & 0 deletions submissions/T094_Echo&Exit/code/app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.kotlin.compose)
}

android {
namespace = "com.demo.vida"
compileSdk = 36

defaultConfig {
applicationId = "com.demo.vida"
minSdk = 32
targetSdk = 36
versionCode = 1
versionName = "1.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
release {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = "11"
}
buildFeatures {
compose = true
}
}

dependencies {
implementation("com.github.bumptech.glide:glide:4.16.0")
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.compose.ui)
implementation(libs.androidx.compose.ui.graphics)
implementation(libs.androidx.compose.ui.tooling.preview)
implementation(libs.androidx.compose.material3)
testImplementation(libs.junit)
androidTestImplementation(libs.androidx.junit)
androidTestImplementation(libs.androidx.espresso.core)
androidTestImplementation(platform(libs.androidx.compose.bom))
androidTestImplementation(libs.androidx.compose.ui.test.junit4)
debugImplementation(libs.androidx.compose.ui.tooling)
debugImplementation(libs.androidx.compose.ui.test.manifest)
}
21 changes: 21 additions & 0 deletions submissions/T094_Echo&Exit/code/app/proguard-rules.pro
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.demo.vida

import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4

import org.junit.Test
import org.junit.runner.RunWith

import org.junit.Assert.*

/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
@Test
fun useAppContext() {
// Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("com.demo.vida", appContext.packageName)
}
}
49 changes: 49 additions & 0 deletions submissions/T094_Echo&Exit/code/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">

<!-- Permissions for network access -->
<uses-permission android:name="android.permission.INTERNET" />

<!-- Permissions for Location (NEWLY ADDED) -->
<!-- ACCESS_FINE_LOCATION grants access to precise location (e.g., GPS) -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- ACCESS_COARSE_LOCATION grants access to approximate location (e.g., cell towers, Wi-Fi) -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

<!-- Permissions for Camera and Microphone -->
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />

<!-- Permissions for Photos, Media, and Storage -->
<!-- READ_MEDIA_IMAGES, READ_MEDIA_VIDEO, and READ_MEDIA_AUDIO are for Android 13 (API 33) and above -->
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />

<!-- For older Android versions (below API 33), use READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<!-- Note: WRITE_EXTERNAL_STORAGE is deprecated for apps targeting API 29 and above -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="29" tools:ignore="ScopedStorage" />

<!-- Permission for Notifications (required for Android 13 and above) -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.Vida">
<activity
android:name=".MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading