Skip to content

A secure and user-friendly password manager built with jetpack-compose

Notifications You must be signed in to change notification settings

amanverma-765/CypherX

Repository files navigation

CypherX

A secure and user-friendly password manager app built with Jetpack Compose that allows users to store and manage their passwords in a secure and organized manner.


           

Functional Requirements

  • Add Password: Users can securely add new passwords by providing details such as the account type (e.g., Gmail, Facebook, Instagram), username/email, and password.
  • View/Edit Password: Users can view and edit existing passwords, including account details like username/email and password.
  • Show List of Passwords on Home Screen: The home screen of the application displays a list of all saved passwords, showing essential details for each entry.
  • Delete Password: Users can delete passwords.

Technical Requirements

  • Encryption: Implement strong encryption algorithms (e.g., AES, RSA) to secure password data.
  • Database: Use a secure database (e.g., SQLite, Room) to manage encrypted passwords locally on the device.
  • User Interface: Design a clean and intuitive user interface for managing passwords.
  • Input Validation: Implement validation to ensure that mandatory fields are not empty.
  • Error Handling: Properly handle errors and edge cases to ensure a smooth user experience.

Bonus Features (Optional)

  • Security Feature: When the user opens the app, prompt them to authenticate using biometric (e.g., fingerprint, face ID) or a PIN screen for added security.
  • Password Strength Meter: Provide a visual indicator of password strength to help users create strong passwords.
  • Password Generation: Provide a feature to generate strong, random passwords for new accounts.

Tech Stack Used

  • Minimum SDK level 24.
  • Kotlin based, utilizing Coroutines + Flow for asynchronous operations.
  • Jetpack Libraries:
    • Jetpack Compose: Android’s modern toolkit for declarative UI development.
    • Lifecycle: Observes Android lifecycles and manages UI states upon lifecycle changes.
    • ViewModel: Manages UI-related data and is lifecycle-aware, ensuring data survival through configuration changes.
    • Koin: Facilitates dependency injection.
  • Architecture:
    • MVI Architecture (Model - View - Intent): Facilitates separation of concerns and promotes maintainability.
    • Repository Pattern: Acts as a mediator between different data sources and the application's business logic.
  • Kotlinx-Serialization: A modern JSON parsing library.
  • Voyager: A modern and robust navigation library.
  • Room-DB: Persistence library in Android Jetpack that simplifies the process of working with SQLite databases.
  • Coil: An image loading library for Android backed by Kotlin Coroutines.
  • Jsoup: Java library that simplifies working with real-world HTML and XML.

Compiling and Running an App from Android Studio

Prerequisites

  • Android Studio installed
  • Basic knowledge of Android development
  • Some patience

Setting Up Android Studio

  1. Install Android Studio

    • Download Android Studio from the official Android Developer website.
    • Follow the installation instructions for your operating system.
  2. Downloading this project

    • Open Android Studio.
    • Click on Get from VCS.
    • Copy the url of this github repo.
    • Place the url inside URL field and hit Clone.

Running the App

  1. Connect a Device or Start an Emulator

    • Connect your Android device via USB and enable USB debugging in the developer options.
    • Alternatively, you can use an emulator:
      • Click on AVD Manager (Device Manager) in Android Studio.
      • Create a new virtual device and start it.
  2. Run the App

    • Click on the green Run button in the toolbar or press Shift + F10.
    • Select the device/emulator from the list and click OK.
    • The app will build and install on the selected device/emulator.

About

A secure and user-friendly password manager built with jetpack-compose

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages