TLC #1 - Quickopy


Hi 👋,
I did it! First lunar challenge cycle completed successfully! 💪

What did I do?

TL;DR:
Tool to quickly allow to copy and paste from one device to another: Quickopy.

The journey

So, as you may know I started on Nov 23rd a personal challenge I named “The Lunar Challenge”. This is a quick summary of this first journey. If you want to know more about the project itself and are not interested in the journey jump to The Project section below.

Finding the idea

It all started on Nov 23rd. First step choosing the project to work on for the next two weeks. My first thought was doing something that would keep me motivated for continuing this challenge. I took a piece of paper and started sketching some ideas. After a while I was convinced: I would create a Lunar Challenge Community.
Going on a challenge like the one I was starting all by myself sounded pretty scary so I would create a community other people could join and participate with their two week projects.
I started defining some basic features and after a while I had some MVP planned and many other features I would add later on.
And then, I went to work. When I got there I kept thinking about how amazing I wanted the community to be. People getting motivated, helping each other. There would be some ranking and participants would share their progress with the rest of the community. Then I thought about adding donations to enforce some projects and prizes to be given after every 2-week cycle. And I kept daydreaming.

After some hours of work I started thinking about the downsides. The main problem of a community is starting it off from zero. Nobody would join if it was empty. Donations? If the community was focused on people trying to push themselves to deliver MVPs there are not many reasons one would donate for another project. And then I thought, well most of the functionalities I wanted to add, were already present in some way in IH. The bubble popped. 💥

I had some issues at work, there was a report that the app we are working on was not loading properly for some test users. I opened the ticket and I had a couple of emails and passwords of the users affected.
I started typing the email on the app… 🕐
I then typed the password… 🕜
And when I clicked login. Login failed “Email and password do not match” 😡
Who is the genius that decided to randomly generate the emails and passwords for test users? 😡 😡 😡

And then 💡 what if I had a way to quickly copy and paste from one device to another? So there I found my first project for The Lunar Challenge 🎉

Basic Prototype

I am a techie, I like programming and testing new technologies. I had been reading recently about the server-less trend and I wanted to test Firebase.
I started a new react-js app and in a matter of hours I had a very basic proof of concept.
I could manually write a reference (in form of a 6 digits code) of a device and send some text in both directions. It was not safe, it was not easy to use, hell it was not even pretty. But it was already useful to me.
Then I went climbing 🗻

Validation

Let me be honest, I was not planning to validate my idea. I had an issue and I thought that in the worst case it would help me, and that was enough for me.
But then I went climbing with some friend (who is also a programmer) and I started talking about the project. I described it as a way to send easily stuff from one device to another. He didn’t really pay much attention until I told him “because I hate typing the random email and passwords for test accounts”. I got his attention, he told me he also had the same problem and told me he maybe could use it for this other use case. The conversation ended with him telling me: “Please, ping me when you have it done. I will use it” 😃
After that, I told to some other people and got similar responses. So I was satisfied.

Improving the prototype

So the first 3 or 4 hours were really interesting, I had to learn some new technology and after some trial and error I got it working. If you are a programmer you know the feeling of satisfaction after getting something to work for the first time. But then it came the not-so-interesting part, improving the prototype until I felt happy with what I had. I listed a couple of features I wanted to include and that’s were I spent most of the days.
What I did to keep me motivated was having another project. When I was kind of stuck with something I changed to another one I have been developing for myself and the other way around.
It also helped to create some routine. Everyday after work I would at least open the IDE and do some minor changes.
And my last piece of advice, before calling it a day. Please spend a couple of minutes writing kind of a “todo” list for what you need to do next time you sit down to work on the project. This was HUGE.

Meeting the deadline

I need to be honest with you (whoever you are…) it is probable that I do not meet the deadline. In fact I am writing this post before completing the last piece of work I had pending. Because reasons I came to visit my parents for the weekend and I forgot my project at home. Yes, yes. I know. Didn’t you used some control version software? Didn’t you had it on the cloud? Yes. I thought I did, but I was wrong and I left it in my other computer 😅
I haven’t lost hope. My brother is at home and probably I can ask him or a friend to switch on my computer and send it to me. So, I have written this so once I get the project I can focus on fixing the last couple of things and uploading everything as fast as possible. And that’s the story for the moment.

Update!: I got my brother’s help. I could progress but got stuck trying to implement the encryption solution. For the moment I cleaned up and I could upload a working solution. Yay!

The Project

Have you ever needed to send some text as quickly as possible from one device to another? Copying an email or a direction or something like that? Here you have Quickopy.

How to use it?

  1. Open Quickopy on one device 💻
  2. Open Quickopy on your other device 📱
  3. In any of your devices 📱 click the SCAN button.
  4. Read the QR 📷 from your other device 💻 Linked! ⚡️
  5. Write or paste whatever you want to send and click on the send button.
  6. Click on the copy button on the recipient device. Done! 🏁

Conclusions

Next project

No idea yet. Will start thinking on it today. See you on the next full moon. 🌕 🐺