Inspiration
People don't want to install separate client software for each cloud service they use, be it OneDrive, Google Drive, Dropbox, MEGA, etc. On top of this, the vast majority of these clients simply do not allow the user to access two different accounts simultaneously for the same service, often times for reasons of money (instead of using two accounts, they try to entice you to pay to upgrade your main account's storage capacity).
What it does
It doesn't do anything at the moment. Read more to find out why.
What it's supposed to do
Using a library called DokanCloudFS, cloud storage services can be mounted as a drive that is visible in Computer, instead of as a folder in the local drive that periodically must sync. Dokan is a library that allows user-mode programs to interface with a kernel-mode filesystem driver without the overhead and complexity of working under a low-level environment, similar to FUSE in Linux. CloudFS is a library of cloud services ("gateways") that can be used as drives; essentially, it adds a layer of abstraction that allows cloud services to be added with minimal effort. DokanCloudFS is a combination of Dokan and CloudFS.
UltronCloud is intended to serve as a frontend to DokanCloudFS. In theory, UltronCloud can unify and provide a more seamless and convenient experience when working with a multitude of cloud services and accounts.
How I built it
In order to create functionality, a bridge must be built between a frontend and a backend. In this case, UltronCloud is the frontend, and DokanCloudFS is the backend.
I chose C# because of its flexibility and easy communication with other libraries.
Challenges I ran into
I like a good challenge, and I am a very patient person when my mind is set to something. But this was just horrible luck.
On the outside, the library looked like an excellent choice; it did exactly what I wanted it to do. Why reinvent the wheel when all the functionality I ever needed has already been implemented in this library?
But one problem came after the other. I thought that the largest obstacle was overcome, only to be met with a series of small obstacles and then an even larger one.
There was something glaring about the code that I did not even notice, in my desperate scramble to get something working: the library was not documented! The only pointer as to what should be done with the library was the sample code, otherwise known as DokanCloudFS.Mounter.
DokanCloudFS has an incredible amount of dependencies; thankfully, the NuGet package manager takes care of this for the most part. However, multiple build configurations with various versions of certain dependencies meant that libraries were getting overwritten, resulting in the program being unable to load all of the libraries and the correct version of their dependencies.
The problems go on ad nauseum. I will not explain them all, as they are very technical, but this is the truth. I am not trying to slander the developer of the library. By 2 AM, things were already looking quite grim.
At 9 AM, I finally decided to resign. My team member suggested me to just make a mock-up, but even for that I did not have time for. How could I possibly write a frontend if I cannot figure out why the backend is not working?
What I learned
First, I should bring a pillow next time. Sleep is important. Second, if I'm working in a tight schedule, it's best to use things that I already am comfortable with. When there are no problems, coding is lightning fast and a hackathon provides a contiguous amount of time to just grow and grow a project in extremely rapid succession.
Conclusion
This project failed and I do not intend to allocate any more time for it. I must move on and prepare for school now.
This does not represent my coding ability at all. I screwed up massively, and I have no choice but to embrace failure. It is such a shame that I am not going home with memories of an overall good time. If you would like to know what I am capable of, it is probably best to look at my other GitHub projects, such as a zero-gravity soccer game I had been working on in July.


Log in or sign up for Devpost to join the conversation.