A publish-subscribe real-tive file sharing system.
Live: https://austinph.me/FireShare
- Backend: NodeJS, Express
- Database: MongoDB Atlas
- FrontEnd: ReactJS
- Pub-Sub: Socket.IO
- Testing:
- Backend: Mocha, Chai,
- Frontend: WebdriverIO
- Cloud Hosting: Heroku (because I expired my other clouds credit), Github Page.
- Login, Register, Authentication using JWT Token.
- Database.
- Upload/Share/Unshare/Edit/Remove/Download file with other people - with Authentication
- Pub-sub model on file with real time update.
- User can create an account/register an account. To register, the email must not be used by any other user.
- Owner can upload/share/delete his file with anyone who is in the system.
- If owner shared with someone, owner can remove his file from sharing with that person, or choose not to share with anyone.
- Owner can rename the file - by clicking at the name of the file.
- User can see which file is shared with him, he can choose to unshare it if he wants.
- User have real-time update on the file he subscribes (is shared/owned) to.
- User can download if the file is shared to him or is owned by him. - Only user who has these privilege can download the file
Go to backend, install and start the server
cd backend/
npm install && npm start
Server should be in localhost:5000
. Please reserve this port for the application, else you can modify it in Constants.js
, backend/test/basic.js
Go to frontend, install and start the server
cd frontend/
npm install && npm start
You can access the website in localhost:3000
by default
Please leave both front-back end application on.
Frontend
cd frontend/
npm run test
Your chrome browser’s version has to be 77 and above for the test to run.
Backend
cd backend/
npm run test
That’s it. Now enjoy the application running.