From 25c1a73901d58aeb79d95edf81593f01bd26c5e3 Mon Sep 17 00:00:00 2001 From: Kosh Date: Fri, 27 Oct 2023 08:24:33 +0530 Subject: [PATCH] Updat README.md --- README.md | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 113 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 78e8fab..d07b333 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,114 @@ # Unnamed Password Manager -Hi \ No newline at end of file +### Introduction +This is a password manager. Keep your passwords safe. :>
+ +### Features: + - Fully local storage + - Symmetric AES encryption + - Multiple users + - Cross platform + - Web ui + +## Working +Why use Unnamed Password Manager (UNPM) +### Before UNPM +"Never use common password" + - A wise person +```mermaid +flowchart LR + vw[Visit Website] + --> s[Sign up using unique password] + --> fp["Forgot Password 😭"] + vw[Visit Website] + --> sa[Sign up with common password] + --> gh[Get all your accounts hacked] +``` +### After UNPM +```mermaid +flowchart LR + vw[Visit Website] + --> s[Sign up using unique password] + --> sp[Save password safely in UNPM] + vwa[Visit Website again] + --> gp[Get password using our web-app] + --> l[Login] +``` + +## FAQ +#### How to Backup? + - Check where AppData is standard stored if your OS is not mentioned here. + - Linux: + - - Backup the file at the location "~/.local/share/Unnamed_Password_Manager/\" + - - Paste it in the same location or follow the directions for the OS. + + +# Dev docs +## Rest API +##### WARNING: + Do NOT use this api for ANY reason EXCEPT if usage is ONLY local, i.e., + this api is NOT built for usage over an external network and doing so + WILL NOT BE SECURE +###### Note: + Server throws 405 METHOD NOT ALLOWED if the url is mistyped + +```mermaid +sequenceDiagram + autonumber + actor User + box App + participant Frontend + participant Backend + end + + Note over User, Backend : LOGIN + User -->> Frontend : Wants to login + Frontend -->> Backend : { user_name : "...", password : "..." } to /login + Backend -->> Frontend : Success : http 200 + Backend -->> Frontend : user_name / password not given : http 400 + Backend -->> User : user_name / password is wrong : http 403 + + Note over User, Backend : LOGOUT + User -->> Frontend : Wants to logout + Frontend -->> Backend : /logout + Backend -->> Frontend : Success : http 200 + Backend -->> User : Not logged in : http 403 + + Note over User, Backend : ADD USER + User -->> Frontend : Wants to add user + Frontend -->> Backend : { user_name : "...", password : "..." } to /add_user + Backend -->> Frontend : Success : http 200 + Backend -->> Frontend : user_name / password not given : http 400 + Backend -->> User : user_name is taken : http 403 + + Note over User, Backend : GET DATA + User -->> Frontend : field/ entry, etc. + Frontend -->> Backend : /get_data + Backend -->> User : Not logged in : http 403 + + Note over User, Backend : CHANGE PASSWORD + User -->> Frontend : Wants to change password + Frontend -->> Backend : { password : "..." } to /change_password + Backend -->> Frontend : password not given : http 400 + Backend -->> User : Not logged in : http 403 + + Note over User, Backend : ADD ENTRY + User -->> Frontend : Wants to add entry + Frontend -->> Backend : entry data to /add_entry + Note over Frontend, Backend : entry data is { entry_name : "...", fields : "..." } + Note over Frontend, Backend : fields should be string({ field1 : "...", field2 : "...", ... }) + Backend -->> Frontend : Entry data is not correct : http 400 + Backend -->> User : Not logged in : http 403 + + Note over User, Backend : DELETE ENTRY + User -->> Frontend : Wants to delete entry + Frontend -->> Backend : { entry_name : "..." } to /delete_entry + Backend -->> Frontend : entry_name not given : http 400 + Backend -->> User : Not logged in or entry_name does not exist : http 403 + + Note over User, Backend : EDIT ENTRY NAME + User -->> Frontend : Wants to change entry name + Frontend -->> Backend : { old_entry_name : "...", new_entry_name : "..." } + Backend -->> Frontend : Success : http 200 + Backend -->> Frontend : old or new entry names not given : http 400 + Backend -->> User : Old user name doesn't exist or the new one already exists +```