Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Terminal Password Manager

About

This project wasn't built to be a production-ready password manager or to impress anyone. Its purpose was simple: to help me become comfortable with Python.

I'm coming from a background in C and Java, and over the summer I wanted to learn Python properly rather than just reading about it. After working through a 12-hour Python course, I decided the best way to learn was by building something from scratch instead of following more tutorials.

The application is intentionally simple and stores its data in a JSON file instead of using a real database. I know that's not how a real password manager would be built, but using JSON allowed me to understand file handling, serialization, and working with structured data while keeping everything as transparent as possible.

What I Practiced

During this project I explored and became more comfortable with:

  • Python syntax and writing larger programs
  • Functions and organizing code across multiple files
  • Reading from and writing to JSON files
  • File handling
  • Password generation
  • Basic hashing with hashlib
  • Creating backups of application data
  • Simple terminal user interfaces
  • Error handling
  • Working with Python's standard library

Some of the modules I experimented with include:

  • json
  • random
  • secrets
  • string
  • hashlib
  • pathlib
  • shutil
  • time

Features

  • Add users
  • Search for users
  • Update passwords
  • Retrieve passwords
  • Generate random passwords
  • Generate and manage master keys
  • Password hashing experiments
  • JSON backup system

Notes

This project is intentionally "raw." I avoided using frameworks or external libraries because the goal wasn't to build the best password manager it was to understand how Python works and to become comfortable writing programs with it.

Looking back, there are many things I'd improve. I'd separate the business logic from the user interface, reduce repeated code, organize the project into classes, and redesign how data is stored. But that's exactly why I'm keeping this repository online: it's a snapshot of where I was while learning Python.

Sometimes it's nice to look back and see how much you've improved.

Thanks for checking it out, and enjoy my slightly chaotic first Python project.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages