Hey! This is a file sharing application I built. It's basically like a personal Google Drive where you can store your files and share them with others securely. I built this to understand how full-stack development works, especially file handling and security.
It's not just a simple upload/download app. I've added a bunch of features:
- Upload stuff: You can upload multiple files at once. I'm using AWS S3 so it can handle big files.
- Secure Login: You have to register and login to see your files. It uses JWT for security.
- Sharing: You can share files with other people using their email.
- AI Summary: This is the newest feature! You can click on a file and it will use AI to give you a short summary of what's inside. Useful if you have long documents.
- Mobile Friendly: Works good on phones too.
- Frontend: React with Vite (managed to make it look decent with Tailwind CSS).
- Backend: Node.js and Express.
- Database: MongoDB for storing user data and file info.
- Storage: AWS S3 for the actual files.
If you want to try this out on your machine, here is what you need to do.
You need Node.js installed and a MongoDB database (local or Atlas works). Also you need an AWS S3 bucket for file uploads.
-
Clone the repo
git clone https://github.com/trainblazer072/file-sharing-app.git cd file-sharing-app -
Setup Backend Go to the server folder and install packages:
cd server npm installYou need to make a
.envfile in theserverfolder with your keys:PORT=3000 MONGO_URI=mongodb://localhost:27017/file-sharing-app JWT_SECRET=some_secret_key AWS_ACCESS_KEY_ID=your_aws_key AWS_SECRET_ACCESS_KEY=your_aws_secret AWS_REGION=us-east-1 AWS_BUCKET_NAME=your_bucket_name
Then start it:
npm run dev
-
Setup Frontend Open a new terminal, go to client folder:
cd client npm installMake a
.envfile here too:VITE_API_URL=http://localhost:3000
Run it:
npm run dev
It should open on
http://localhost:5173.
I deployed the backend and frontend on Vercel. If you want to deploy, just push the server and client folders to those services and set the environment variables there.
Let me know if you face any issues running it!