Docstash - Personal Cloud Storage
November 01, 2016 • ☕️ 2 min read
The project started as an idea for Final year project when I took the Cloud Computing as project domain. I wanted to use new technology in this project. Knowing web development the obvious choice was to go with JavaScript.
Source Code #Technology Discovery Before this project, I had no idea about Nodejs, React, NoSQL database.I did a few tutorial about each subject and finally decided the tech stack
After some research, I decided to go with
Front End
Back End
I Started working on the front end, making sketches and creating the static page after 2 to 3 week completed the initial static version
- User Authentication
It was time to implement some backend in Node and I had thought of some initial features that will be provided like to download torrent in the cloud. I used Passport for user auth, it has the comprehensive set of strategies that we can use.
- Front end in React
Getting Started tutorial by Facebook is the great place to learn react fundamentals and paradigm.
I referred to this starter kit to create my webpack build process. As the static page was already created I was easy to implement in react. Added many things to front-end such as notification, loader and finally the authentication part was complete.
- Backend
As my backend is REST API I can run front-end and backend in different server. Later add features such as mail, enabled CORS so that it can work on a different domain, Social Login with Facebook and Google. Added Link Shortner so that later user can share the link with friends.
- Nosql Database
I am using MongoDB as my database from mlab which is Database as a service. Also a node module mongoose for creating schemas.
- Torrent Downloading
This feature may be the reason for choosing this project, it came as a need for me to download a torrent (like Linux distros). I found many amazing libraries like torrent-stream, parse-torrent which helped me to build the back end. Also used Google Drive Sdk so that user can store torrent directly to google drive.
For the front-end, it was needed to show the real time update to user which socket.io help me to accomplish Also added a torrent search engine to the front end or user can paste magnet link or upload a torrent file to start downloading.