Good stretch with Simple Schedule today. Did the 'My Attendees' page, working nicely. Some other tweaks across the site on the backend. Next stop is 'My Events'.
Vincent Ritter

Simple Schedule
A simple way to manage bookings, appointments and gatherings on the web. Although, now it's over and there won't be anymore parties. Thank you to everyone that has been along for the ride.

Thank you, it's been a journey!
After many years, we've closed our doors. The party is over.
From meet-ups, multi day events to pyjama parties. Simple!
Simple Schedule was a new and simple way to manage bookings, appointments and gatherings. Even superhero dress up parties!
Born from a 'scratch your own itch' idea to learn more and broadening my skills. Which I then took with me on my new ventures and projects.
Thank you, Simple Schedule, for being a light in my exhausting few months of complete and utter stress during a dark time in my life.
Project posts JSON/RSS Feed...
Finding it difficult to find the time to keep up with blog posts for my code challenge.
Worked on Account Profile and Account Settings more. They are now complete. Have cut out the profile image for now.
Next up I'll be adding Attendees... Also populating that Trello board.
Account setting page sorted for Simple Schedule. Working. Cut the 'date format' feature for now, as I'm using an easy to understand way "Apr, 1st 1976". Everyone will understand that.
I wanted to work on Simple Schedule tonight but instead having an early night so I can push even further tomorrow. Nothing like an early night.
Simple Schedule - Day 16 & 17. Register, Login and sharing progress.
It's been a few days since the last post. Happy to report good progress the past few days with both learning and getting something up and running that worksā¦ slowly!
Iām really happy that Iām learning Rails this way and donāt regret my decision to go down this route!
There are 22 commits in the Rails project now, with the majority (95%) over the past few days.
Register & Login
I rewrote the whole code for this 3 timesā¦ from scratch. I wanted to get it right. Maybe a bit too much, but I also had to make sure itās secure as it can be.
However, I am happy that I took the time. I feel itās at a enough polished state to actually show you.
As it was my first time pulling in assets from my static site and having two different templates for the dashboard, register and login sections I had to do a bit of digging to get that all working nicely. Didnāt take long to find:
render :layout => "accountā
Easy enough! I can even call an action:
render 'index', :layout => "accountā
Awesome. Yes, Iām new to Rails development! These are in various of my controllers. That basically tells which layout I want to render on the page. Useful!
The database design wasā¦ interesting! I am super used to camelCasing everything and found myself doing exactly date. So for example:
- emailIsVerified
- authTokenDigest
- emailChangeAt
I could do it that wayā¦ but it quickly looked like garbage. Instead I now seem to be doing it the better way.
- emailIsVerified -> email_is_verified
- authTokenDigest -> auth_token_digest
- emailChangeAt -> email_change_at
So, before:

Andā¦ after:

It reads so much better! Iām quickly adopting my methods to use this style too. Iām running Sublime Text, so I donāt really get hints or anything and found that renaming these to be so much easier on the eyeā¦ and actually remembering, even when guessing. Yeah, I could use RubyMine by JetBrainsā¦ but I also want to learn and not get too much help. Plus, ermm, it is super ugly to look at.
Database migrations are cool, but have also been a pain pointā¦ but now I learned my lesson and am way more confident how to set these up.
For local dev I actually decided to use Postgres as itās just easier for me. I run a nice app called Postico! Really great! I can even log into my database on Heroku.
The reason for re-writing pretty much everything: Itās good to get something to workā¦ and then learn from it and make it much better.
Sharing is caring
With the frontend of the website developed out in the open I wanted to do something similar for the app too. However, it had to be at a stage where it made sense.
Having completed Login and Registration I think it is time to let people in to the āalphaā phase of the project. Although, I wouldnāt even call this anywhere near an alpha. Youāve been warned!
Soā¦ for registration head here: https://my.dev.simpleschedule.net/register
Registration, Login and Logout works fully. Registration will send out an email verification email. Login does something similar and will send you an authentication token. These emails are bare. Iāll work on those at the beta stage.
Youāll be logged in straight away, but I may change how that works down the line.
On top, I have decided to open up a public Trello board so you can see what Iām actively working on and will add to this as I go. You can see it here:
Caution
If you decide to play around with the dev site, just be aware that I will be making many changes between now and beta. Things will break! Things will not work! Things will not look right! This is all as expected.
Your account might get deleted in the process as I work through it.
Closing thoughts
Iām having a good time building this. I am not sure what it is about developmentā¦ but it really drives me. I am not perfect but I love learning and solving problems.
Keep your eyes peeled on the Trello board and feel free to ābreakā stuff.
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. On top, there is now a public Trello board with dev site progress. You can visit the 'pre-alpha' website to play around.
For other posts on the challenge, check out the links below:
- Code challenge - from zero to web app in 60 days.
- Code challenge - Prelude and Day 1 - Setting things up.
- Code challenge - Day 2.
- Code challenge - Day 3. Holding page.
- Code Challenge - Day 4. A login page and a few tweaks.
- Code Challenge - Day 5. Registration page and preliminary app navigation.
- Code Challenge - Day 6. Getting in the groove, new events, MVP considerations.
- Code Challenge - Day 7. 'My Events' view.
- Code Challenge - Day 8. Burning the midnight oil, loud music and good progress.
- Code Challenge - Day 9. Progress, changes and regrets.
- Code Challenge - Day 10. There are no events, pricing thoughts and badges.
- Code Challenge - Day 11. New logo, further changes to event details and a tiny tweak.
- Code Challenge - Day 12. Final frontend stretch.
- Code Challenge - Day 13. Choosing Rails, getting into the swing and thoughts on a multi tenancy app.
- Code Challenge - Day 14 & 15. Blog post thoughts, passwords and learning.
Worked hard to get Register and Login to work for my Code Challenge app (Simple Schedule) with emails being sent out for verification and login.
You can give it a spin here: https://my.dev.simpleschedule.net/register
Blog post coming tomorrow.
Finding myself rewriting most of the register and login logic... because. Great to do it though! Nothing like learning :) Hope to have it as I want it in the next few days. It was nearly there but I wasn't happy about it.
Great progress with the Login and Register sections for Simple Schedule. Just sorting out the "magic link" login mailer. Most of the logic seems to be working now though. Super happy.
I jotted down the "User" model that I wanted to use, generated the model and db migration... and now I've changed my mind on possibly every field. Typical!
Code Challenge - Day 14 & 15. Blog post thoughts, passwords and learning.
Yes, Day 14 and 15 all at once... What have I been up to is a good question. A lot, but not much at the same time.
Learning
Iāve been learning a great deal about Rails over the course of last week, yesterday and today. I picked up a great book early last year, Ruby on Rails Tutorial by Michael Hartl. Everywhere you go it always seems to be recommended. How right everyone has been!
Iāve been exposed to Ruby with Jekyll for many years and always wanted to build an app on Rails with it. It truly is a beautiful language. Something sublime about it!
Building an app takes some basic knowledge of what youāre building on top (the framework), so Iām super happy that I took the time to work through these exercises. As itās quite ambitious I wanted to get my feet wet with the book and actually just get through it.
Passwords
Every time I think about passwords I shrug. Sure, things get easier with password managers like 1Password. So Iām not sure if I should offer password creation during registration or just rely on āmagicā login links for the time being.
Looking around, people seem to prefer one or the other and there is no clear cut answer of what to use.
Using passwords is easy and so should be magic links. I would log the user in regardless and set a long cookie so you wouldnāt have to worry about it too much.
My conclusion is that Iāll probably offer magic links for the start and then look at passwords down the roadā¦ althoughā¦ quite easy to implement. I just want to keep it simple, so I need to find the right balance.
Iāve been looking at https://draftin.com for inspiration and that seems to be using passwords.
You can see my internal struggleā¦
Blog post thoughts
If youāre following Brent Simmons via Micro.blog or his website, heās doing an amazing job for keeping a diary for Evergreen. I feel inspired by this and would like to try something similar for Simple Schedule as I build out the app. I have a feeling that writing a blog post every day will take up a lot of time. There needs to be a balance of sharing and meaningful progress. Hope I can balance that.
Closing notes
Heroku is set up and running, dev urls are there and I am ready to begin to 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:
- Code challenge - from zero to web app in 60 days.
- Code challenge - Prelude and Day 1 - Setting things up.
- Code challenge - Day 2.
- Code challenge - Day 3. Holding page.
- Code Challenge - Day 4. A login page and a few tweaks.
- Code Challenge - Day 5. Registration page and preliminary app navigation.
- Code Challenge - Day 6. Getting in the groove, new events, MVP considerations.
- Code Challenge - Day 7. 'My Events' view.
- Code Challenge - Day 8. Burning the midnight oil, loud music and good progress.
- Code Challenge - Day 9. Progress, changes and regrets.
- Code Challenge - Day 10. There are no events, pricing thoughts and badges.
- Code Challenge - Day 11. New logo, further changes to event details and a tiny tweak.
- Code Challenge - Day 12. Final frontend stretch.
- Code Challenge - Day 13. Choosing Rails, getting into the swing and thoughts on a multi tenancy app.
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:
- Code challenge - from zero to web app in 60 days.
- Code challenge - Prelude and Day 1 - Setting things up.
- Code challenge - Day 2.
- Code challenge - Day 3. Holding page.
- Code Challenge - Day 4. A login page and a few tweaks.
- Code Challenge - Day 5. Registration page and preliminary app navigation.
- Code Challenge - Day 6. Getting in the groove, new events, MVP considerations.
- Code Challenge - Day 7. 'My Events' view.
- Code Challenge - Day 8. Burning the midnight oil, loud music and good progress.
- Code Challenge - Day 9. Progress, changes and regrets.
- Code Challenge - Day 10. There are no events, pricing thoughts and badges.
- Code Challenge - Day 11. New logo, further changes to event details and a tiny tweak.
- 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.

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