Coder Social home page Coder Social logo

smart-credit-manager's Introduction

Credential Manager

License: MIT

Modern, open-source in hand desktop application to manage your credentials in a smarter way.

Description

Credential Manager is a user-friendly, offline, and local PC-based application designed to help you securely store and manage login credentials, including usernames, passwords, and associated remarks. With its intuitive interface and powerful features, it provides a convenient and organized way to store your sensitive information.

Project Structure

smart-credit-manager/
|-- src/
|   |-- main/
|       |-- java/
|           |-- np/com/satyarajawasthi/smartcreditmanager/
|               |-- controller/
|                   |-- LoginController.java
|                   |-- DashboardController.java
|               |-- model/
|                   |-- User.java
|                   |-- Credential.java
|               |-- repository/
|                   |-- UserRepository.java
|               |-- util/
|                   |-- DatabaseUtil.java
|                   |-- EncryptionUtil.java
|               |-- manager/
|                   |-- CredentialManager.java
|                   |-- CredentialManagerImpl.java
|               |-- Application.java
|-- test/
|   |-- (unit tests to be added here)
|-- src/
|   |-- main/
|       |-- resources/
|           |-- np/com/satyarajawasthi/smartcreditmanager/
|               |-- config.properties
|               |-- database/
|                   |-- SmartCreditManagerDB.db
|               |-- css/
|                   |-- styles.css
|               |-- fxml/
|                   |-- login.fxml
|                   |-- dashboard.fxml
|               |-- images/
|                   |-- profile.png
|-- .gitignore
|-- LICENSE
|-- README.md

Features

  • User-friendly interface
  • Securely store and manage usernames and passwords
  • Add remarks or notes to your credentials
  • Local, offline storage using SQLite
  • Planned data backup feature
  • Built with Java, JavaFX, and SQLite

Getting Started

To get started with Credential Manager, follow these steps:

  1. Download the latest release or build the application from source.
  2. Launch the application on your local machine.
  3. Create an account and start adding your credentials securely.

Usage

  1. On first login, use the default username and password:
    • Default Username: 'root'
    • Default Password: 'root'
  2. During the first login, you will be prompted to change your username and password.
  3. Set a passphrase along with your new username and password.
  4. Your passphrase can be used for password recovery and changing your password in the future.
  5. Safely store your data with end-to-end encryption.
  6. Easily add, view, edit, or delete credentials.
  7. Automatic logout: The user will be logged out when the application is closed.
  8. You will need to log in on each new application start.
  9. Planned feature: Data backup to keep your information safe.
  10. Safely store your data with end-to-end encryption.

Contributing

We welcome contributions from the open source community! To contribute to Credential Manager, please read our contribution guidelines.

License

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

Acknowledgments

Contact

Have questions, suggestions, or need assistance? Feel free to contact us.


Disclaimer

Credential Manager does not currently provide data backup. Data backup functionality is planned for future releases. Please make sure to keep your data safe and backed up manually.

This application is provided as-is, and the project maintainer accepts no responsibility for any loss, damage, or risks that may occur from its use. While every effort is made to ensure the security and reliability of this application, there may be vulnerabilities or issues that are yet to be discovered. Users are encouraged to use this application responsibly and take appropriate precautions when managing their credentials.

The project maintainer is committed to continuously improving this application's safety and usability and welcomes contributions from the open-source community to make it more secure and convenient for users.

Your feedback and contributions are highly valuable in making this application better and more reliable. If you encounter any issues or have suggestions for improvements, please feel free to open an issue or contribute to the project.

Thank you for using Smart Credit Manager and for being a part of our open-source community.

smart-credit-manager's People

Contributors

satyarajawasth1 avatar

Stargazers

Shreeya Tamang avatar

Watchers

 avatar

smart-credit-manager's Issues

Update .gitignore file

This issue aims to update our .gitignore file to exclude unnecessary files from version control. The update will:

  • Exclude IDE-specific files (e.g., .idea/) and build artifacts (e.g., target/, bin/).
  • Add common compiled file types (e.g., .class, .jar) to the ignore list.

Updating the .gitignore file helps maintain a clean and organized repository by preventing temporary or generated files from being included.

Update project structure on documentation

Currently the readme and description of the repo doesn't contain the project structure. How packages, classes and all the directories are maintained.

It will be easy for everyone to find whats inside and where does actually specific functionality relies.

Enhancements: Credential Management and Default User Change Alert

This issue is to track and discuss the recent enhancements made in the project. The changes include adding, editing, and deleting credentials with both UI and database logic validation. Additionally, a new functionality has been implemented to alert users to change the default login credentials on the first login.

Tasks Completed:

Credential Management:

  • #21
  • #22
  • #23
  • Implement validation logic for editing credentials.
  • #24
  • Implement validation logic for deleting credentials.

Default User Change Alert:

  • #27
  • #25
  • Validate and save changes made to default login credentials.
  • #26

Other Changes:

Implement Credential Dashboard

Description:

Create a new feature for the Smart Credit Manager application โ€“ a Credential Dashboard. This dashboard should be accessible after a successful login and provide users with a user-friendly interface to manage their credentials. The dashboard must include a table displaying credentials with columns for ID, Tool Name, Username, Password, Email, and Remarks. Additionally, three buttons (Add, Edit, Delete) should be available for users to perform CRUD operations on their credentials. For testing purposes, mock data should be initially used.

Tasks:

Note:

This issue is part of the ongoing development of the Smart Credit Manager application and aims to enhance user functionality and experience.

Add profile setting frame / card

A frame / card should be opened for editing of settings (including logout, change passphrase, username etc.) when clicked onto the profile icon.

Implement Forgot Password functionality

Forgot password button is shown in login frame. But, it is change by Change password if its first time for the user on the application. Since, there is default login and it should be changed.

The following functionalities to be added:

  • A UI form for forgot password.

  • When clicked on Forgot password a form should open where user will have to set new password and also need to type the passphrase.

  • Update backend / database logic for password update

  • Passphrase must should match to the passphrase set on database.

Initial Project Setup and Basic Login Form

Issue

This issue serves as the starting point for the Smart Credit Manager project. The goal is to create the initial project structure, establish basic database connectivity, create a login form, and set up initial user management functionality.

Tasks

  • Create a Maven-based JavaFX project.
  • Set up the project's directory structure.
  • Establish database connectivity using SQLite.
  • Implement the user repository to handle user-related operations.
  • Create a basic login form with username and password fields.
  • Implement initial user creation.
  • Restrict further user insertion after the initial user is created.
  • Implement basic encryption for sensitive user data.
  • Implement user login functionality.
  • Add a landing page for logged-in users.
  • Implement credential management features.

User initialization transaction flow and config file location Issues

Issue

I encountered two issues in the project:

  1. Database Initialization: The database initialization process was not correctly creating the "users" table, inserting default user and enabling the insertion restriction trigger. This led to issues when updating the password-related data.

  2. Config File Location: Issue accessing configuration file due location access issues.

Steps to Reproduce

  1. Run the project.
  2. Observe that the "users" table is not created, and the insertion restriction trigger is not activated.
  3. The location of the configuration file is set to /np/com/satyarajawasthi/smartcreditmanager/config.properties, which might not be found.

Expected Behavior
The database should be correctly initialized, and the config file should be accessible.

Proposed Solution

  1. Update the database initialization logic to ensure that the "users" table is created and the insertion restriction trigger is activated during the first login.
  2. Use a relative path to access the config file, ensuring it's found.

Log

image

Add logout functionality on the Dashboard

  • A logout button or functionality should be maintained on clicking to the logout button or icon
  • Logout user when application is closed. (Clear session or context if maintained during #35)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.