A web-based application for uploading, downloading, previewing, and managing PDF and DOCX files. Built to provide secure, scalable, and efficient file management.
- File Upload & Download: Upload PDF/DOCX files to the server and download them as needed.
- File Preview: Preview files before downloading to review their contents.
- File Management: Delete files from the server and save downloaded files to your device.
- Responsive UI: Mobile-friendly and accessible on various devices.
- Secure Storage: Leverages AWS S3 for secure, reliable, and scalable file storage as files grow.
- Automated Server Management: Configured Systemd on Linux to run the application server as a background service for automatic startup and reliable request handling.
- Optimized Deployment: Deployed on AWS EC2 (t2.micro) with Nginx as a reverse proxy and static file server for optimized performance and security.
- Reduced Latency: Integrated AWS Cloudfront CDN for caching files, enabling faster delivery and reduced latency.
- AWS S3: Used for secure, scalable file storage.
- AWS EC2: Hosts the application server.
- Nginx: Acts as a reverse proxy and static file server for React build files.
- Pagination: Implement for listing publicly available files, reducing bandwidth and resource overload.
- AWS OpenSearch: Integrate for faster document search functionality.
Below are the environment variables required for the application:
NODE_ENV = production / development
PORT = 4000
DEV_DATABASE = your development database URL
PROD_DATABASE = your production database URL
JWT_SECRET = paste your own JWT secret
DEFAULT = default url for profile picture
AWS_REGION = hosted region for AWS S3 Bucket
AWS_S3_BUCKET_NAME = hosted S3 bucket name
- Frontend: React (for responsive UI, file previews, component optimization)
- Backend: Node.js (for RESTful APIs, file management, and AWS S3 integration)
- Database: MongoDB (for metadata and user data)
- File Storage: AWS S3 (for scalable file storage)
- Deployment: AWS EC2, Nginx, Systemd (for reliable app hosting and management) (Assigned IAM Role to EC2 instance for interacting with S3 Bucket)
ScreenShots: