https://github.com/skizzy-create/my-encryption-app
An interactive web app for secure messaging: choose an encryption algorithm, encrypt messages, and get an encrypted string with a QR code. Scan the QR code to decrypt or use the website directly
https://github.com/skizzy-create/my-encryption-app
bycrypt express jwt-authentication mern mongoose nodejs react render typescript vercel-deployment
Last synced: about 1 month ago
JSON representation
An interactive web app for secure messaging: choose an encryption algorithm, encrypt messages, and get an encrypted string with a QR code. Scan the QR code to decrypt or use the website directly
- Host: GitHub
- URL: https://github.com/skizzy-create/my-encryption-app
- Owner: Skizzy-create
- License: other
- Created: 2024-09-02T22:24:49.000Z (8 months ago)
- Default Branch: production
- Last Pushed: 2025-01-27T17:12:38.000Z (4 months ago)
- Last Synced: 2025-03-23T19:02:36.604Z (about 2 months ago)
- Topics: bycrypt, express, jwt-authentication, mern, mongoose, nodejs, react, render, typescript, vercel-deployment
- Language: TypeScript
- Homepage: https://my-encryption-app.vercel.app
- Size: 296 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# My Encryption App




## Overview
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.
## Features
- **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.## Getting Started
### Backend
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.
#### How to Run the Backend
1. **Navigate to the Backend Directory:**
```bash
cd backend
```
2. **Compile TypeScript:**
```bash
tsc -b
```
3. **Run the Server:**
```bash
cd dist
node server.js
```For detailed technical documentation on the backend, visit the [Backend Documentation](./backend/README.md).
### Frontend
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.
#### How to Run the Frontend
1. **Navigate to the Frontend Directory:**
```bash
cd frontend
```
2. **Start the Development Server:**
```bash
npm run dev
```For detailed technical documentation on the frontend, visit the [Frontend Documentation](./frontend/README.md).
## CODE FLOW
```mermaid
%%{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
```## Project Structure
```plaintext
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)
```
## LicenseThis project is licensed under the Skizzy License.