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.
- 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.
- 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.
- 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.
- 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.
- Android Studio installed
- Basic knowledge of Android development
- Some patience
-
Install Android Studio
- Download Android Studio from the official Android Developer website.
- Follow the installation instructions for your operating system.
-
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
.
-
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.
- Click on
-
Run the App
- Click on the green
Run
button in the toolbar or pressShift + F10
. - Select the device/emulator from the list and click
OK
. - The app will build and install on the selected device/emulator.
- Click on the green