Friday, April 19, 2013

I love it when a plan comes together

It has been a roller coaster ride since I got my CAT result on 9 January. In this period, I have been to about a dozen of B-school and job interviews where I usually feel nervous, to the dozen of B-school Group Discussion where I feel quite at ease. Interviewed about 50 odd students myself in the recruitment for my Drams club. Organized the Annual fest of my college. And experienced betrayals, success, loneliness, bankruptcy and whatnot.

After three months of doing stuff that I did because 'a man gotta do what a man gotta do' I was finally jobless again on April 15th. I had been busy, but something that was more important than all of this had been put on the back-burner. My final year project. Something that I'd talk about when I'm old and lose all my teeth. The glorious feeling of creating a software system. It took me 6 months to zero down to a topic. I wanted it to be something new, a project which had never been made before. My quest for a novel idea, was unfruitful. So decided to go on an adventure ride on a topic I had no idea about. I have decided to create the replica of Skydrive or the Googledrive. Though it has already been invented, I decided to create a cloud file storage system of my own, which I thought was sufficiently difficult.

I planned it in modules and started working on each of them. First the database part which holds the entire file system of the project. The file system that the user would experience on the CloudDrive (thats what I named it for the time being) is actually as abstraction as the user doesn't have any corresponding folders present on the physical drive storage, its just in the tables. This database can only be accessed from a web-service which rests on the cloud. The tables hold the link to the encrypted files stored on the server which are fetched by the service on requests with valid credentials and access permissions.

The service can be consumed by a host of applications on a browser or native desktop applications and mobile applications.

With this is vague plan of action, I started coding the various modules simultaneously thinking about solution various issues that I came across with as I progressed, like cleaning all the child nodes of a parent directory when it gets deleted. Confirming whether the user has access permissions of a file by traversing the entire file tree until reaching a node where he had been assigned the permissions.

After all the brainstorming and coding today I finally had the system running like any real file system you can come across. Ecstasy was the feeling. The feeling that I'm sure people would get when they invented something. Though this was not an actual invention rather a reinvention or a research

I really love it when a plan comes together.
The file system schema.

No comments:

Post a Comment