Vincent Ritter

I'm a dad, husband, geek and an independent software engineer.

Code Challenge

I set myself a challenge to create a web app in 60 days. Follow along as I build the app in the open with daily progress reports.

I'm working on Simple Schedule, a new and simple way to manage bookings, appointments and gatherings.

Both full blogs posts and thoughts on the project are shown below. If you would like to get involved you can email me or message me on Micro.blog. There is also a static front-end website that you can explore as I build it out, check it out. Enjoy.

Quick update on the Code Challenge

Due to the lack of updates recently I thought I’ll give you all an update.

The last few days have been difficult, not only are we all (family) feeling under the weather, but also my computer screen (hooked up to the Mac mini) decided to give up. My beloved Apple screen! Gone. Dead.

Today, with a replacement screen, I started getting problems running anything within Terminal… pretty gutted. A clean install of macOS seems to have solved the issue though. So I’m working on getting everything on my system at the moment. I didn’t want to attempt using a Time Machine restore.

Anyway, I’m hoping to catch up within the next few days and start giving regular updates again as best as I can.

Sometimes technology seems to get into my way. This year has already been pretty tough, so this seems like another punch below the belt.

Onwards and upwards!

Code Challenge - Day 13. Choosing Rails, getting into the swing and thoughts on a multi tenancy app.

In my previous posts, I was arguing with myself what ‘stack’ I would use for the codebase. I was certain that ASP.NET Core would tick the right boxes. I already know C# and thought I would be fairly comfortable just getting into it.

Installing and launching Visual Studio for Mac was as easy as just downloading it. Yeah, it had to grab some extra stuff… so like in the usual Microsoft fashion it downloaded gigabytes of stuff ¯\_(ツ)_/¯

I created a new project to get me right into it. Faced with a learning curve to get to know the new and improved ASP.NET Core v2, the last time I looked they just rolled out the first RC1 for version 1. That was an exciting time!

Then it dawned on me… I really had to learn a lot. Not too much, but enough to make me re-think my blip of judgment.

I fell asleep that night and actually dreamt about Ruby on Rails… the great podcasts, the amazing community around it and the amount of help found just around the internet. I listen to “The Bike Shed” podcast a lot… well, used to. I have a memory from one of the hosts a few years back saying that they called their newborn “Ruby” because they loved the language so much. Any “C#”’s walking around? Email me!

It was those years that I really longed to learn Ruby and write an actual app using Rails.

This morning I re-visited the Ruby on Rails tutorial by Michael Hartl to jog my memory as it has been some time… oh boy did I get hooked straight away! The book is amazing! So if you’re starting out or need to jog your memory I urge you to buy it! There is also a free online version.

My heart longs for Ruby, I just didn’t let it in enough of fear of being behind on it.

I’m happy I chose to stick to what my deep inner developer wants. I don’t know why I go through this stage with projects… at the end of this I will me more confident than I ever was, I am sure of that!

So with all that out the way, I started the dev build… `rails new SimpleSchedule.App.Rails`.

That’s the splash screen after you first run `rails server`. I really like that! And yeah… I know it’s just a picture… but go on and check out the ASP.NET one… I’d love to show you but Visual Studio is taking around 50 seconds to launch and is beach balling on me… It’s the little things! Nothing like instantly launching Sublime Text and off you go and develop.

Oh, here you go:

I guess a bit more useful… but it decided to add a lot of things for me. And yeah, I can set it up so it starts with nothing…

Anyway, sidetracking there. Visual Studio is nice, but I just can’t get past the little things… they matter in a developers life I think.

Getting into the swing

This is my first full Rails app. There you go, I said it! I did dabble around with it in the past, but nothing ever as serious as this app. I am happy I have taken the plunge… finally!

Today, I just spent most of the day going through the Rails Tutorial, building on that. I think I did this twice already, but I find it’s a great way to get me thinking about it all.

I’ll continue until it’s done and hope to, either tomorrow or the day after, start building out the first few sections of the app. Namely the login and register sections.

Whilst doing this I also played around with Heroku and the Heroku Pipelines. I want to obviously separate the “dev” to the “live” site always. Pipelines seem to tick that box nicely.

I’m planning to share the “dev/staging” url during development as I think would be fun for other people to try and break stuff on the way. You could probably guess the URL. Anyway, I won’t share until the login and register is done, as that is a crucial first milestone. Unfortunately I will probably wipe the database a few times before beta, just for fun!

I’ll need to play a bit more with pipelines but I think I have the hang of those!

Certainly easier than navigating Microsoft Azure. Although, I do like the Azure UI for some bizarre reason.

Hope to have something early next week!

Multi Tenancy

I’ve never created a multi tenancy app. Multi Tenancy basically is an app that allows many users, with one database, each with their own data (to keep that really really simple). You can read up about it here though.

I’m scratching the surface on how to best handle this, with storing user id’s next to each entry (yes and no... and if I want to sleep at night... no) or if I should use something like Apartment which basically creates a new schema in PostgreSQL, which is quite cool.

I do like to write something to handle this myself as I’m not a huge fan of using too many third party gems/plugins. It’s always been like that with me. Even my own iOS apps have no third-party code… just mine (except the Apple frameworks of course).

Let’s see how it goes though. Yet to really nail that database design. I’m used to database design using SQL Server, from Microsoft, which was cool. But I always wanted that code first approach anyway.

Next steps and thoughts

Quick thoughts on Rails is that I’m happy that I bit that bullet. It feels natural and Ruby is a great language!

For the next steps, apart from missing designs like email templates etc, I’d like to get something out to use early next week for people to try. There are a fair few beta sign ups already, which is really great!

I’ll need to think of a way to get feedback before beta too, may it be Slack, Discord or some other medium. I don’t want to be a closed box or anything and I rather develop in the open.

The pressure is on, so I better get going.


I wrote this article mainly for myself to follow along when I look back at it at some stage. If you like to contribute, please email me or let me know via Micro.blog. There is also the Simple Schedule holding site where you can sign up for a beta.

For other posts on the challenge, check out the links below:

  1. Code challenge - from zero to web app in 60 days.
  2. Code challenge - Prelude and Day 1 - Setting things up.
  3. Code challenge - Day 2.
  4. Code challenge - Day 3. Holding page.
  5. Code Challenge - Day 4. A login page and a few tweaks.
  6. Code Challenge - Day 5. Registration page and preliminary app navigation.
  7. Code Challenge - Day 6. Getting in the groove, new events, MVP considerations.
  8. Code Challenge - Day 7. 'My Events' view.
  9. Code Challenge - Day 8. Burning the midnight oil, loud music and good progress.
  10. Code Challenge - Day 9. Progress, changes and regrets.
  11. Code Challenge - Day 10. There are no events, pricing thoughts and badges.
  12. Code Challenge - Day 11. New logo, further changes to event details and a tiny tweak.
  13. Code Challenge - Day 12. Final frontend stretch.

Always liked this image when you first start with Rails. Loads to learn and do now. I'm excited.


Code Challenge - Day 12. Final frontend stretch.

Didn’t think I would be here on day 12 with a near complete frontend built out… I have never done anything like it. 40 commits in the repo so far (I don’t commit too much for frontend… although I ought to).

The main area of focus today was finishing off the Attendee detail view for both attendees and for the event detail view.

I’m having conflicting thoughts on how to best handle this, but I’m sure I will gain a better insight once I have something working with real data.

At this stage, the frontend is at around 95% done… perhaps 90%. I am prepared for, and am expecting, changes to occur between now and launch. Nothing is ever really done anyway. It will evolve and I’m actually looking forward to get requests and tweaks in.

I didn’t touch on specific time booking slots yet, but will get to this in a few weeks hopefully. It’s something I want to launch with, but let’s see how that goes.

Event Booking Details

Not sure on this one and not 100% convinced it is as clear as it can be. I wanted a simple overview for the attendee and the booking, which displays the name, email and event date for the individual. On top, there is an email link there… might be useful to email someone.

This page is actually a form element and should be editable, just to avoid many different screens and logic. Hitting the “Edit details” button will reveal a nice area for you to save changes. Check it out, quite happy about the way that works (for the next 24 hours).

And then the “edit” part:

It’ll actually focus on the first input too, so you can get right to it.

Link for this page: https://frontend.dev.simpleschedule.net/app/events/details/attendee/

Add an attendee to an event

I also wanted the ability to add an attendee, new or existing, to an event. This is what I came up with:

The idea here is to search for anyone already on your list via an AJAX (or similar) call as you type. I was thinking of presenting a search box and give you the option to search… but I think combining it to just the first box would work quite well. I didn’t make that work on the frontend! Plan is to try and find someone on the list and then offer to pre-fill the data, or just create a new attendee. Simples… (ha!)

Link: https://frontend.dev.simpleschedule.net/app/events/details/add/

My Attendee Detail

Taking a similar style as above I basically replicated the detail screen and also added a list view of the events they are or have been part of.

The “Amend” will take you straight back to the events section where you can make the edit. Don’t want to overcomplicate it. I’ll have to think about a way to return to the correct section once saved though.

Link: https://frontend.dev.simpleschedule.net/app/attendees/details/

The road ahead

With my first milestone out the way, it’s my plan to get the actual app coded. I am having a “Vincent” moment with deciding on the code base yet again. This always happens to me. I really want to nail a full Ruby on Rails app… but again, I also want to nail a ASP.NET Core app.

I’m edging closer to Rails… because it is something I wanted to do since last year… I’ve done my fair share of ASP.NET apps in the past.

I want to learn and have fun, so I’ll take that into account.

Anyway, the plan is to probably have the weekend to experiment with… something… then make a decision by Sunday night and get on with it. That will leave me 17 days to get close to a beta. That would also bring the project to ~29 days for end of Jan. I tend to count the days I’m working on it, so I hope I am still on track for most part of it.

There are many many many tweaks I still like to do on the frontend, like lists display and other little things that bug me. Oh... forgot to mention there is now a footer too. Another thing to note is that I'm yet to work on the 'public' view of the events, where people can sign up. It's sketched out in my head.

So… Ruby on Rails or ASP.NET Core? HAHA! (My friend Chris takes the flack of these dilemmas! Sorry Chris...)


I wrote this article mainly for myself to follow along when I look back at it at some stage. If you like to contribute, please email me or let me know via Micro.blog. There is also the Simple Schedule holding site where you can sign up for a beta.

For other posts on the challenge, check out the links below:

  1. Code challenge - from zero to web app in 60 days.
  2. Code challenge - Prelude and Day 1 - Setting things up.
  3. Code challenge - Day 2.
  4. Code challenge - Day 3. Holding page.
  5. Code Challenge - Day 4. A login page and a few tweaks.
  6. Code Challenge - Day 5. Registration page and preliminary app navigation.
  7. Code Challenge - Day 6. Getting in the groove, new events, MVP considerations.
  8. Code Challenge - Day 7. 'My Events' view.
  9. Code Challenge - Day 8. Burning the midnight oil, loud music and good progress.
  10. Code Challenge - Day 9. Progress, changes and regrets.
  11. Code Challenge - Day 10. There are no events, pricing thoughts and badges.
  12. Code Challenge - Day 11. New logo, further changes to event details and a tiny tweak.

One last push to get Simple Schedule frontend to a 95% done state. With that I can then start the actual build. I'm expecting things to change, hence the percentage. Super excited!

Only one page to go until I can comfortably start my code base for my code challenge. Pretty excited! Loads of functionality, that I didn't think about, holding me up a bit though...

Code Challenge - Day 11. New logo, further changes to event details and a tiny tweak.

They say that design is never actually done… or that is what it feels like. Even though I’m counting the days I’m working on this project, it feels like many months in the work, finding more and more areas I haven't thought about.

I am happy with the way things are going though which, to be honest, is surprising me considering some strange health events with family and on top loosing my biggest client that provided a large proportion of my income (nothing I did). Was out the blue as a happy new year kind of thing. Life is interesting for sure!

I was actually planning to diversify income end of last year… but it seems I was not thinking about it early enough.

Anyway, moving swiftly on! (I feel better just by writing the above)

A new logo

This morning I sat down and worked on a new logo. It’s nothing concrete and will change. So here it is…

Nothing eye popping but far better what I had… The idea is to use the double S on smaller screens and the favicon. Perhaps I’ll stick to the double S in the header area too, no matter the size.

Anyway, just experimenting. I am no brand or logo designer…

I used Sketch, a pretty snazzy app! In fact, I have an iOS app completely designed in it… which I’ll hopefully work on after this project is live (not related).

Also, Eddie Hinkle over at Micro.blog mentioned the below:

Looks interesting! just a thought (this might look horrible) what if you changed the kerning (the empty space between the letters) so that the h and m still connect but also the d and the L connect as well.

I've added that to my todo list to try out. Thanks Eddie!

Event Details - Attendees & Search

For this one, I had the page open and looked at it for at least an hour. Clicking around… trying to figure out how it might work best. This is something you couldn’t really do with an image of the design… ok, maybe you can… but you know what I mean. There is always added value when you can click around and work out what seems natural. Then again… it really requires testing and feedback from a wider audience to really nail it.

I wasn’t sure if I needed an 'all attendees' page, but decided it would be for the best. However, I have a search and filter on both the events details page (the first page you see when clicking on an event) and on the all attendees page.

The all attendee page might show just a bit too much information for my liking, but I’ll stick to it for now and let beta users decide.

You can see the hidden “description” of the event on the All Attendees page for the event. Don’t really need it there. I may also remove the date and just keep a few more “actions” at the top.

For a multi day event, you’ll have a dropdown with dates - for filtering purpose. Every attendee will also show which date they are booked in on. This will eventually also allow time slots to be added. Something I’ll work on closer to launch I hope.

With a search in place, you can also clear the filter which shows you all results again.

Hey… new logo right there!

One more notable thing here is that I also hide the “Edit” and “Public URL” link at the top right. I might add them, but don’t want to throw too many options at people.

Tweaks and next steps

If you’ve noticed… the background grey is slightly lighter…

Next step is to work on the attendee detail page for an event, this will include some controls to remove them, change details and/or change the event date for multi day events. With that done, I can re-use pretty much that and use it for the ‘My attendees’ section… hopefully. That should be the last of the pages that need doing.

Depending how it goes tomorrow (today… as it’s approaching 01:20 AM), I’m hopefully going to be in a position to start the actual codebase. I’m pretty excited about that!

Another thing I’ll work on separately is the public facing section for events. I didn’t have any visions on how that should look just yet… although minimalism is going to be a must for this one.

Oh... and I forgot the links for the pages:


I wrote this article mainly for myself to follow along when I look back at it at some stage. If you like to contribute, please email me or let me know via Micro.blog. There is also the Simple Schedule holding site where you can sign up for a beta.

For other posts on the challenge, check out the links below:

  1. Code challenge - from zero to web app in 60 days
  2. Code challenge - Prelude and Day 1 - Setting things up
  3. Code challenge - Day 2
  4. Code challenge - Day 3. Holding page.
  5. Code Challenge - Day 4. A login page and a few tweaks.
  6. Code Challenge - Day 5. Registration page and preliminary app navigation.
  7. Code Challenge - Day 6. Getting in the groove, new events, MVP considerations.
  8. Code Challenge - Day 7. 'My Events' view.
  9. Code Challenge - Day 8. Burning the midnight oil, loud music and good progress.
  10. Code Challenge - Day 9. Progress, changes and regrets.
  11. Code Challenge - Day 10. There are no events, pricing thoughts and badges

Experimenting with a new logo for Simple Schedule (I am not a brand designer haha). Have used it on my frontend build of the project.


Close