Postal service project:
# Postal Service Encryption and Decryption System
## 📜 Project Overview
This project is a **web-based encryption and decryption system** designed for the postal service to ensure the confidentiality and security of sensitive letters. The system enables users to upload PDFs, extract text, encrypt it using cryptographic algorithms, and download the encrypted content. It also supports decryption of encrypted PDFs using the appropriate keys.
## 🌟 Features
- **Encryption**: Securely encrypts letters using RSA, AES, and Caesar cipher algorithms.
- **Decryption**: Decrypts encrypted content using the appropriate decryption keys.
- **File Handling**: Allows users to upload PDFs, extract text, and download the encrypted or decrypted content as a PDF or text file.
- **Location Tracking**: Secondary feature to track the location of postmen.
## 🛠️ Technologies Used
- **Frontend**: React.js
- **Backend**: Node.js with Express.js
- **Database**: MongoDB (using MongoDB Atlas)
- **File Storage**: GridFS for handling uploaded files
- **Cryptography**: Implementation of RSA, AES, and Caesar cipher algorithms
- **Development Tools**: Visual Studio Code, Postman for API testing
## 🚀 Setup and Installation
### Prerequisites
- Node.js and npm installed
- MongoDB Atlas account
- Git installed
### Steps to Run Locally
1. **Clone the Repository**
```bash
git clone https://github.com/your-username/postal-service-encryption.git
cd postal-service-encryption-
Install Dependencies
npm install
-
Set Up Environment Variables Create a
.envfile in the root directory and add the following variables:MONGO_URI=your_mongodb_atlas_connection_string JWT_SECRET=your_jwt_secret_key -
Run the Server
npm start
-
Run the Frontend Navigate to the
clientdirectory and start the React app:cd client npm start -
Access the Application Open your browser and go to
http://localhost:3000.
postal-service-encryption/
├── client/ # React.js frontend
├── server/ # Node.js backend
│ ├── routes/ # API routes
│ ├── controllers/ # Business logic
│ ├── models/ # Database models
│ ├── utils/ # Cryptographic functions
├── uploads/ # Uploaded files (via GridFS)
├── .env # Environment variables
├── package.json # Backend dependencies
├── README.md # Project documentation
-
Encryption Process:
- User uploads a PNG or JPG file.
- The text is extracted from the image file.
- Text is encrypted using a selected algorithm (RSA, AES, or Caesar cipher).
- Encrypted text is downloadable as a new PDF or text file.
-
Decryption Process:
- User uploads an encrypted PDF or text file.
- Provides the appropriate decryption key.
- Decrypted text is displayed and downloadable.
-
Location Tracking:
- Tracks postman locations using geolocation APIs (if enabled).
- Add support for additional encryption algorithms.
- Implement role-based access control for enhanced security.
- Integrate real-time tracking updates for postmen.
- Deploy the application on a cloud platform like AWS or Heroku.
-
Buddhima Chathuranga Lakmal
University: Student at Horizon CampusEmail: [email protected]
LinkedIn: LinkedIn Profile
This project is licensed under the MIT License.
Let me know if you need further customization!