My Encryption App is a web application designed to provide users with a secure and user-friendly way to encrypt and decrypt messages. Users can select an encryption algorithm, enter a message, and receive an encrypted string. The app also offers the ability to generate a QR code containing the encrypted data and the algorithm used, which can be decrypted by scanning through the website.
- User Authentication: Secure login and registration with JWT-based authentication.
- Message Encryption: Choose from various algorithms to encrypt messages.
- QR Code Generation: Generate a QR code with encrypted data and algorithm details.
- Message Decryption: Decrypt messages using the selected algorithm or by scanning the QR code.
- File Encryption (Upcoming in v1.1): Encrypt and decrypt files securely.
The backend of this application is built using Node.js, Express, and Mongoose, and is written in TypeScript. It handles user authentication, encryption/decryption logic, and database interactions.
- Navigate to the Backend Directory:
cd backend
- Compile TypeScript:
tsc -b
- Run the Server:
cd dist node server.js
For detailed technical documentation on the backend, visit the Backend Documentation.
The frontend is built with Vue.js and is responsible for the user interface, including the input forms, displaying encrypted messages, and scanning QR codes.
- Navigate to the Frontend Directory:
cd frontend
- Start the Development Server:
npm run dev
For detailed technical documentation on the frontend, visit the Frontend Documentation.
%%{init: {
'theme': 'dark',
'themeVariables': {
'fontFamily': 'monospace',
'primaryColor': '#fff',
'primaryTextColor': '#fff',
'primaryBorderColor': '#fff',
'lineColor': '#fff',
'secondaryColor': '#252525',
'tertiaryColor': '#252525'
}
}}%%
graph TD
A[Frontend] --> B[Home Page]
B --> C{User Action}
%% Authentication Flow
C -->|Get Started| D[Login/Signup Window]
D -->|Skip| E[Continue as Guest]
D -->|Login| F[Authentication]
D -->|Signup| G[Registration]
F -->|Validate| H[User Schema Validator]
G -->|Validate| H
H -->|Valid| I[Backend Auth Service]
I -->|Hash Password| J[Password Service]
I -->|Generate Token| K[JWT Service]
I -->|Store User| L[(MongoDB)]
%% Main Application Flow
E --> M[Main Interface]
K --> M
M -->|Encrypt Message| N[Encryption Route]
M -->|Decrypt Message| O[Decryption Route]
M -->|Generate QR| P[QR Code Route]
%% Message Processing
N --> Q[Message Schema Validator]
O --> Q
P --> Q
Q -->|Valid| R[Encryption Service]
Q -->|Valid| S[Decryption Service]
Q -->|Valid| T[QR Code Service]
%% Database Operations
R --> U[Store Encrypted Message]
S --> V[Store Decrypted Message]
T --> W[Store QR Code]
U --> L
V --> L
W --> L
%% User History
M -->|View History| X[History Route]
X --> Y[Extract User ID]
Y --> Z[Fetch User History]
Z --> L
my-encryption-app/
│
├── backend/
│ ├── dist/
│ ├── src/
│ ├── package.json
│ ├── tsconfig.json
│ └── README.md
│
├── frontend/
│ ├── src/
│ ├── public/
│ ├── package.json
│ ├── tsconfig.json
│ └── README.md
│
├── .gitignore
└── README.md (this file)
This project is licensed under the Skizzy License.