personal-management-system-io icon indicating copy to clipboard operation
personal-management-system-io copied to clipboard

Extension of Personal Management System for exposing data externally

Personal Management System - I/O

Insert and Output tool for providing personal data over the internet

Description


This project is used as proxy for receiving and displaying the data transferred from Personal Management System. This tool is Input and Output only - it does not and never will have any type of interface for that.

Reasoning/Purpose


The Personal Management System was designed to never, ever be available online. The very purpose of the project is to keep private data hidden safely locally. However... things have changed and I will need some of the data also accessible over the internet on my phone, laptop, desktop - wherever it's possible.

Naturally passing the data over the internet is... risky - can be intercepted, leak from the server etc. to prevent such case this project is additionally secured:

  • data transferred from Personal Management System is already encrypted,
  • information in GUI are only accessible after logging in,
  • login form additionally requires providing valid encryption key,
  • data is constantly removed from DB via cron and when user logs out,
  • PMS data is always rejected unless the PMS-IO `transferAllowed` flag is set to true,
  • encryption key used for logging in is stored only in session,
  • country restrictions access - using external API to check the country IP,

Preview


Tech

Personal Management System - I/O is a web application which can be ran either in Windows and Linux environment. Everything is by default tested on Ubuntu 20.x.

Used languages/frameworks/solutions

  • Php 8.0
  • JS
  • VueJS 3
  • TypeScript
  • Symfony 5.x
  • MySQL
  • Css
  • Scss
  • Node 10.22.1
  • Bootstrap 5
  • Webpack