But what should I do? – part 1

Last time, I wrote about "Get Noticed" competition, where you have to create an open source project in 10 weeks and during this time you also have to blog about the whole process. When you look at these requirements it’s not so complicated, it sounds really easy, but it’s not. First of all, writing posts. It’s hard, especially if you didn’t do anything of that sort ever, but that’s part of a challenge, isn’t it? Like with everything in life, you need to practice to develop new abilities and skills, so bear with my writing skills for now 🙂

Now let’s move to the other creative process of the competition – software development! That’s more comfortable zone for me. It doesn’t look like it does, but it really gives a lot of joy – and sometimes frustration, anger, feeling of helplessness and many other fun feelings. Try it!

But to develop software you need one important thing – an idea for a project. I have few in my mind… here’s one of them.

Meal tracking

Some of you may have heard about something called Intermittent Fasting (IF), it’s an eating protocol that’s not about what you eat, but when you eat. The main idea about IF is that you eat only during an eating window, for example between 11:00 and 19:00 – so that’s an 8-hour eating window. Rest of the day, that’s 16 hours,  you don’t eat, you can only drink water, coffee, tea and any other 0 caloric liquids. The main goal of this prolonged fast is to give your body a chance to burn all glucose so that it can switch to burning fat and, as a side effect, fix some of your hormone levels, clean up stuff inside you, oh and you also loose weight. There are many different versions of IF, like The Warrior diet where you have 20/4 (not eating/eating) window, or Leangains with 16/8 and other. There are no rules, anyone can choose their own eating window that matches his/her lifestyle.

Some people go even further, they do not eat at all for days… yes, you read it correctly, they do not eat for days, for 24, 36, 48 hours or even longer. If you are interested in this topic, take a look at Intensive Dietary Management blog, just remember to be careful with fasting, it may be dangerous to you.

There is also another group of people, they eat! They try to eat 4, 5 or even 6 meals a day, they try to eat each meal withing certain time, for example, every 3 hours.

The Project

As you see, for some people meal tracking may be important, and they may need a way to do this in a simple way. So here’s my idea. An Android app, that lets you log a meal with optional notes, just time of a meal and notes, in future maybe some other stuff too. Also, to make it a bit more useful, app could have an ability to track additional data, like measurements, glucose levels, weight, all the stuff that is important to people that try to take care of their eating habits. Of course gathering this data makes no sense if you can’t present it in some nice way, so something like some good looking charts that can show multiple measurements over time would be a good addition, there are many possibilities here. Other cool feature could be an ability to plan your meal times ahead of time, or offer some IF protocol to choose from list and have the app help you stay on track, by showing notifications and reminders about your eating window or just reminding you that you should eat in… just… about… NOW! And of course app should have the ability to sync across devices and support some form of accounts.

As a bonus, if I will have enough time, I could also try to make a web version, so that you could use it on iOS, desktop or anywhere else. Of course with full integration with mobile app data.

Technology

Most of the time I work as a backend developer, creating services, integrating systems, serving data for client application, all the fun stuff. But from time to time, it would be good to try something different, and maybe make a client application instead 🙂 And that’s why I chose Android, I know the language and also I know a fair bit about Android SDK, but I haven’t written a full fledged android app from the ground yet, I have only maintained android apps and added features to them. I plan to make use of all the "good practices" like MVP pattern, use Butterknife to easily bind views, use Dagger2 for dependency injection and even RxJava 2 and Retrofit. These are all interesting libraries that I didn’t have a chance to use in bigger projects.

So that’s for the Android app itself, but I will also need backend, and this time I don’t want to write it, so I’m thinking about using Firebase and using its authentication, database and configuration services. That should save me some time and for sure would be fun to do.

Using Firebase also have other benefits, Firebase also has Javascript API, so it should be really easy to make a web version of the app. For the web part I plan to learn something new too – Angular 2. I do know old Angular JS 1.x and some Typescript, so learning 2.x shouldn’t be hard. The only problem here is time, I may have not enough time to do this part in 10 weeks. But we will see, recently I have bought Angular 2 course on Udemy.com and I plan to use it! Just don’t know when 🙂

Sounds simple, isn’t it? That’s the first project that I have in mind for this competition. I’ll write about the other one in the next part!


Also published on Medium.