A lightweight, local, in-memory web application that allows you to safely store and retrieve credentials for your accounts without using a complex database. It runs on a local web server and provides standard web API endpoints to add, search for, and delete passwords securely and instantly.
Ensure the following are installed globally on your machine:
PYTHON: VS CODE: PYTHON EXTENSION: FLASK: GIT BASH
Follow these step-by-step instructions to download and run the password manager on your own machine:
-
Open the Project in VS Code
- Launch VS Code.
- Go to File > Open Folder... and select your
Flask_Git_Projectfolder. - Open the integrated terminal in VS Code: Terminal > New Terminal (or press `Ctrl + ``).
-
Set Default Terminal to Command Prompt
- In the terminal window, click the dropdown menu next to the
+sign. - Select Command Prompt as your terminal.
- In the terminal window, click the dropdown menu next to the
-
Select the Global Python Interpreter
- Press
Ctrl + Shift + Pto open the Command Palette. - Search for Python: Select Interpreter and select it.
- Press
-
Install dependencies:
- pip install Flask
To run the Flask application with debug mode enabled, run the following command in your VS Code Git Bash terminal:
python -m flask --app Endpoint_workflow run --debug
Once started, the server will run locally at Bash: `http://127.0.0.1:5000/`
Open a separate Git Bash terminal or use the existing one to run these curl commands and test the application:
- Test Home Endpoint (GET)
curl http://127.0.0.1:5000/- Expected Output:
Welcome to the App
- Test Health Endpoint (GET)
curl http://127.0.0.1:5000/health- Expected Output:
App is running
- Add a New User (POST with JSON)
curl -X POST -H "Content-Type: application/json" -d '{"username": "Mohit", "password": "securepassword123"}' http://127.0.0.1:5000/add- Expected Output:
json
{"message":"User added successfully","status":"success"}
- Delete a User (POST with JSON)
curl -X DELETE http://127.0.0.1:5000/delete/alex- Expected Output:
json
{ "message": "User 'alex' deleted successfully","status": "success"}
| Endpoint | Method | Behavior | Example Response |
|---|---|---|---|
/ |
GET |
Returns a friendly landing page greeting. | "Welcome to the App" |
/health |
GET |
Displays the server status to verify it is running. | "App is running" |
/add |
POST |
Accepts a JSON body containing a username and password and stores it in memory. | {"status": "success", "message": "User added successfully"} |
/get/<username> |
GET |
Retrieves the stored password for the given username. Returns a 404 error if the user does not exist. |
{"username": "Mohit", "password": "securepassword123"} |
/delete/<username> |
DELETE or GET |
Removes the specified username and password from storage. Returns a 404 error if the user does not exist. |
{"status": "success", "message": "User 'Mohit' deleted successfully"} |
To ensure stability, this project strictly followed professional feature-branch development:
- Main Branch (
main): Kept as a clean and deployable branch representing live releases. No code was written directly on this branch. - Development Branch (
dev): Used as the primary branch for coding and testing new features. - Merging Protocol: Code was merged from
devintomainonly after passing local verification. Merges were performed using--no-ff(no-fast-forward) to preserve a clear visual merge bubble and release history.
dev: o---o---o (commits)
\
main: o-----o (merge: Version 1)
dev: o---o (new commits: add/get + delete)
\
main: o-----o----o (merge: Version 2)
|---------|------------------|
| Version 1 | Basic Flask app with / (welcome message) and /health (status check) endpoints |
| Version 2 | Everything in Version , plus the full password manager: POST /add and GET /get/<username>, and GET /delete/<username>
Below is the root endpoint of the application running locally in the browser:
Below is the root endpoint of the application running locally in the browser:

Below is the response showing retrieved user credentials in JSON format:

Below is the response showing deleted user successfully in JSON format:

The repository branches page showing the active development (dev) and stable release (main) branches:

The repository page showing the files and the successful merge message (Merge branch 'dev'):
