This project is a password manager application that allows users to securely store their website names and passwords. The application provides a user interface for managing passwords, including adding, editing, and deleting website credentials. It also incorporates an authentication system to ensure that only authorized users can access their passwords.
- User registration and authentication
- AES-256 encryption for password security
- View decrypted passwords for individual websites
- Add, edit and delete website password entries
- Responsive design for mobile and desktop devices
- Error handling and validation for forms
The project utilizes the following technologies:
-
Backend:
- Node.js: A JavaScript runtime for server-side development.
- Express.js: A web application framework for Node.js.
- PostgreSQL: A powerful open-source relational database management system.
- TypeScript: A typed superset of JavaScript that compiles to plain JavaScript.
-
Frontend:
- Next.js: A React framework for building server-side rendered and statically generated web applications.
- TypeScript: TypeScript is used throughout the project to ensure strong type safety and enhance the development process.
- Tailwind CSS: Tailwind CSS is used for styling the frontend, offering a utility-first approach and speeding up the design process.
To setup the application locally, follow these steps:
-
Star and Fork this repo to create your own copy to work from.
-
Clone the repository you forked to your local machine using:
git clone <your_forked_repo_url>
-
Navigate to the Server directory using command "cd server" and create a .env file and copy contents of .env.example file to .env file and add all secret keys to setup postgres database and backend.
-
Install dependencies in server directory of project:
npm install
-
Start the server using command:
npm start
-
create a Table (schema) by making a POST request to API endpoint http://localhost:8080/schema using Postman or other API testing tools.
-
Now Navigate to the client directory using command "cd client" and create a .env.local file and copy contents of .env.sample file to .env.local file and add server URL.
-
Install dependencies in client directory of project:
npm install
-
Start the application using command:
npm run dev
-
Open http://localhost:3000 in your browser to see the application.
Contributions are welcome! If you would like to contribute to the project, please follow these steps:
-
Clone and setup this application locally by following above application setup steps.
-
Create a new branch for the issue you assigned to work on, using below command:
git checkout -b your_branch_name
-
Make your changes to the code.
-
Once you are satisfied with your changes, commit them with a descriptive commit message using below command:
git add . git commit -m "feat: Add feature X"
-
Push your changes to your forked repository:
git push origin your_branch_name
-
Create a pull request by clicking the "Pull request" button on the original repository page.
-
Wait for the project maintainer to review your pull request and provide feedback.
-
If your pull request is accepted, it will be merged into the main branch of the project. Congratulations, you've contributed to the project!
To use the application, follow these steps:
- Register a new account with your username, email and password.
- Log in to the application using email and password.
- Add a new website name and password by filling out the form and clicking the "Add New" button.
- View your website name and password entries in the main page.
- Click the "eye" button to view the decrypted password.
- Edit or delete a website name and password entry by clicking the corresponding button in the main page.