Skip to content

rtewari056/easyshare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

File sharing app powered by express js

πŸš€ Demo

This application is deployed on DigitalOcean. Please check it out πŸ˜„ here.

easyShare

πŸ–₯️ Tech Stack

Frontend:

HTML5Β  CSS3Β  JavaScriptΒ 

Backend:

Node JSΒ  HTML5Β 

Database:

MongoDBΒ 

Email Service:

Sendinblue

Deployed On:

Sendinblue

⚑️ Features

  • Secure file transfer via email, or unique shareable links.
  • Intuitive and friendly UI with drag & drop feature.
  • Toast notifications for actions: uploading files, exceed file size limit, sending email etc.
  • View upload progress on the app.
  • Send large files up to 100 MB per transfer.
  • Files are available up to 24 hours before being automatically and permanently erased from servers.

πŸ“ Project structure

β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ config/
β”‚   β”‚   β”œβ”€β”€ connectToMongoDb.js
β”‚   β”‚   └── cronScript.js
β”‚   β”œβ”€β”€ handlers/
β”‚   β”‚   └── fileHandlers.js
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   └── File.js
β”‚   β”œβ”€β”€ handlers/
β”‚   β”‚   β”œβ”€β”€ fileHandlers.js
β”‚   β”‚   └── cronScript.js
β”‚   β”œβ”€β”€ public/
β”‚   β”‚   β”œβ”€β”€ css/
β”‚   β”‚   β”‚   └── style.css
β”‚   β”‚   β”œβ”€β”€ img/
β”‚   β”‚   β”‚    β”œβ”€β”€ download-sd.svg
β”‚   β”‚   β”‚    └── logo.png
β”‚   β”‚   └── favicon.ico
β”‚   β”œβ”€β”€ routes/
β”‚   β”‚   β”œβ”€β”€ downloadRoutes.js
β”‚   β”‚   β”œβ”€β”€ fileRoutes.js
β”‚   β”‚   β”œβ”€β”€ index.js
β”‚   β”‚   └── showRoutes.js
β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”œβ”€β”€ emailService.js
β”‚   β”‚   └── emailTemplate.js
β”‚   β”œβ”€β”€ uploads/
β”‚   β”‚   └── .gitkeep
β”‚   β”œβ”€β”€ views/
β”‚   β”‚   └── download.ejs
β”‚   └── server.js
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ copy-icon.svg
β”‚   β”œβ”€β”€ favicon.ico
β”‚   β”œβ”€β”€ file.svg
β”‚   β”œβ”€β”€ index.html
β”‚   β”œβ”€β”€ index.js
β”‚   β”œβ”€β”€ logo.png
β”‚   β”œβ”€β”€ style.css
β”‚   └── undraw-upload.svg
β”œβ”€β”€ .env.example
β”œβ”€β”€ .gitignore
β”œβ”€β”€ package-lock.json
β”œβ”€β”€ package.json
└── README.md

πŸ“– Prerequisites

In order to run the project you need node>=16 and npm>=8 installed on your machine.

🚩 Getting Started

1. Clone the easyshare repository:

git clone https://github.com/rtewari056/easyshare.git
cd easyshare

2. Install package dependencies:

In the root directory, run:

npm install

3. Rename .env.example into .env and put all creadentials:

APP_BASE_URL=http://localhost:5002
PORT=5002
MONGO_URI="YOUR_MONGO_CONNECTION_URL"

SMTP_HOST=<YOUR_SMTP_SERVER_HOST_NAME>
SMTP_PORT=587
SMTP_USER=<YOUR_SMTP_SERVER_USER_NAME>
SMTP_PASSWORD=<YOUR_SMTP_SERVER_PASSWORD>

4. Run project:

npm run dev

5. Open your browser and go to http://localhost:5002

πŸ‘€ Developer

Rohit Tewari

πŸ“¬ Contact

If you want to contact me, you can reach me through below handles.

LinkedIn Gmail Twitter

πŸ“ƒ License

easyShare is licensed under the MIT License.

Show your support by 🌟 the project