Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/fwasik/password-wallet

PasswordWallet is an application that allows you to save and share passwords to various websites or applications with other users. It also allows users to track their login activity. The application was created as a project for my studies.
https://github.com/fwasik/password-wallet

aws-ebs cicd django docker docker-compose github-actions gunicorn postgresql python unittesting

Last synced: about 1 month ago
JSON representation

PasswordWallet is an application that allows you to save and share passwords to various websites or applications with other users. It also allows users to track their login activity. The application was created as a project for my studies.

Awesome Lists containing this project

README

        

# Password Wallet

## Table of contents
* [Introduction](#introduction)
* [Technologies](#technologies)
* [CI/CD](#cicd)

## Introduction
The application was created as a project created for study classes. The main functionalities are the ability to
create passwords to various other applications, domains, and the ability to share these passwords with other users.
Passwords are encrypted using Crypto package and AES algorithm. The user can update, delete, view
decrypted passwords, clear password shares as well as view shared passwords by other users. The user
also has the ability to update the application master password and delete the account. Additional functionality included in
the requirements is the ability to list login attempts for a given account, along with information about the IP
address, login time and whether the login was successful. Moreover, in order to make any action on passwords, user
has to confirm his identity by providing his master password to the account. This happens only once during login session.

The application was developed using the Django framework and a PostgreSQL database. The application and database were
created separately in different containers during the development stage. A full CI/CD pipeline was created using
GitHub Actions and AWS Elastic Beanstalk in order to deploy the application to production. Moreover, the app includes
unittests.

## Technologies
Most important technologies used:
- Python: 3.11.5
- Django: 4.2.11
- gunicorn: 21.2.0
- PostgreSQL: 13.0
- Docker, docker compose
- GitHub Action
- AWS Elastic Beanstalk

## CI/CD
Full CI/CD pipeline was created with 3 stages: running tests for app, build docker image for production and sending
deploy package (which includes docker-compose.yml file) to an environment on AWS EBS.

The app should be accessible at http://password-wallet.eu-central-1.elasticbeanstalk.com/

### !!! ATTENTION !!!
Sometimes, due to exceeding the Free Tier for AWS, I have to stop the instance on which the application is running.
During this period, the application will not work.