Skip to content

DEV270201/EasyFiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 

Repository files navigation

EasyFiles

A web-based application for uploading, downloading, previewing, and managing PDF and DOCX files. Built to provide secure, scalable, and efficient file management.

Features

  • 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 Integrations

  • 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.

Upcoming Optimizations

  • Pagination: Implement for listing publicly available files, reducing bandwidth and resource overload.
  • AWS OpenSearch: Integrate for faster document search functionality.

Environment Variables

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

Technologies Used

  • 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:

HOME: image

REGISTER: image

LOGIN: image

UPLOAD: image

FILES: image

image

PROFILE: image

STATUS CHANGING OF FILE: image

Developed with ❤️ by Devansh Shah

About

ReactJS, NodeJS, MongoDB, AWS S3, AWS EC2, AWS CloudFront, AWS Lambda, NGINX

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published