Skip to content

This repository contains the mobile application for Cekulit, built with Kotlin. Key Features: - Interactive dashboard - Journal management system - API integration for data sync

License

Notifications You must be signed in to change notification settings

CeKulit/cekulit-mobile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

35 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CeKulit Mobile App

CeKulit Logo

AI-Powered Skin Analysis Mobile Application

Android CI Release API Level License

Contents

Overview

CeKulit is an innovative Android application that helps users identify their skin type using advanced AI technology. The app provides personalized skincare recommendations and tracking features to help users maintain healthy skin care routines.

Problem Statement

According to WHO, over 900 million people globally are impacted by skin conditions, with limited access to dermatological care creating a significant barrier to treatment. CeKulit aims to bridge this gap by providing accessible skin analysis tools through mobile technology.

Features

πŸ” Smart Skin Analysis

  • Real-time skin type detection
  • High-accuracy AI-powered analysis
  • Supports various lighting conditions

πŸ‘€ User Profile

  • Personalized skin care tracking
  • Analysis history
  • Progress monitoring

πŸ“± Intuitive Interface

  • Material Design 3 components
  • Dark/Light theme support
  • Responsive layouts

πŸ” Security

  • Secure user authentication
  • Private data protection
  • Encrypted local storage

Architecture

App Architecture

graph TB
    subgraph Presentation Layer
        A[Activities/Fragments] --> B[ViewModels]
    end
    
    subgraph Domain Layer
        B --> C[Use Cases]
        C --> D[Repositories Interface]
    end
    
    subgraph Data Layer
        D --> E[Repository Impl]
        E --> F[Local Data Source]
        E --> G[Remote Data Source]
        F --> H[Room Database]
        G --> I[REST API]
    end
Loading

MVVM Pattern

flowchart LR
    A[View] --> B[ViewModel]
    B --> C[Model]
    C --> D[(Repository)]
    D --> E[API Service]
    D --> F[Local DB]
Loading

Tech Stack

Core Technologies

  • Language: Kotlin
  • Minimum SDK: 24 (Android 7.0)
  • Target SDK: 34 (Android 14)

Libraries & Dependencies

dependencies {
    // Core Android
    implementation 'androidx.core:core-ktx:1.12.0'
    implementation 'androidx.appcompat:appcompat:1.6.1'
    implementation 'com.google.android.material:material:1.11.0'

    // Architecture Components
    implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0'
    implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.7.0'
    implementation 'androidx.room:room-runtime:2.6.1'
    implementation 'androidx.navigation:navigation-fragment-ktx:2.7.7'

    // Network
    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
    implementation 'com.squareup.okhttp3:okhttp:4.12.0'

    // Image Processing
    implementation 'androidx.camera:camera-camera2:1.3.1'
    implementation 'androidx.camera:camera-lifecycle:1.3.1'
    implementation 'com.github.bumptech.glide:glide:4.16.0'

    // DI
    implementation 'com.google.dagger:hilt-android:2.50'

    // Testing
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
}

Project Setup

Prerequisites

  • Android Studio Hedgehog (2023.1.1) or newer
  • JDK 17
  • Android SDK 34
  • Gradle 8.2

Installation

  1. Clone the repository
git clone https://github.com/CeKulit/cekulit-mobile.git
  1. Open project in Android Studio

  2. Configure local properties

# local.properties
sdk.dir=/path/to/android/sdk
api.base.url=https://api.cekulit.app/v1/
  1. Build the project
./gradlew build

Development Guide

Project Structure

app/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main/
β”‚   β”‚   β”œβ”€β”€ java/com/cekulit/
β”‚   β”‚   β”‚   β”œβ”€β”€ data/
β”‚   β”‚   β”‚   β”œβ”€β”€ di/
β”‚   β”‚   β”‚   β”œβ”€β”€ domain/
β”‚   β”‚   β”‚   β”œβ”€β”€ presentation/
β”‚   β”‚   β”‚   └── utils/
β”‚   β”‚   └── res/
β”‚   └── test/
β”œβ”€β”€ build.gradle
└── proguard-rules.pro

Coding Standards

  • Follow Kotlin Coding Conventions
  • Use dependency injection with Hilt
  • Implement clean architecture principles
  • Write unit tests for business logic
  • Document public APIs and complex implementations

UI Components

Screenshots

Home Screen Analysis Screen Results Screen Profile Screen

Material Design Implementation

  • Custom theme following Material Design 3
  • Dynamic color support
  • Consistent typography and spacing
  • Accessible UI elements

Testing

Unit Tests

@Test
fun `skin analysis should return valid result`() {
    // Test implementation
}

UI Tests

@Test
fun captureImageAndAnalyze() {
    // UI test implementation
}

Progress Reports

Week 1: Project Setup and Initial Development βœ…

  • Project structure setup
  • Basic navigation implementation
  • Camera integration

Week 2: Core Feature Development βœ…

  • API integration
  • User profile implementation
  • Local database setup

Week 3: UI Enhancement and Testing 🚧

  • UI polish
  • Performance optimization
  • Component testing

Week 4: Final Testing and Deployment πŸ“‹

  • User acceptance testing
  • Bug fixes
  • Play Store preparation

Contributors

Mobile Development Team

  • Alvano Hastagina (Universitas Ibn Khaldun Bogor)
    • Feature Development
    • Testing Implementation
  • Viera Adella (Universitas Riau)
    • UI/UX Implementation

Technical Advisors

  • Nurrahman Hadi
  • Candra Reza Prasetya Gannes

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • WHO for global skin health statistics
  • Our university partners for resources and support
  • The open-source community for amazing libraries

Made with ❀️ by CeKulit Team

Β© 2024 CeKulit. All rights reserved.

About

This repository contains the mobile application for Cekulit, built with Kotlin. Key Features: - Interactive dashboard - Journal management system - API integration for data sync

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages