【Day 611】I released online booking systems for dental appointments

2020.10.04

I could finish development and release an online booking system for dental appointments!

It started in April. I want to look back like before one!

Project Overview

  • Developed with Laravel, JQuery, and MySQL
  • Deployment to VPS service
  • Coding all and Building production/development environment on VPS
  • Need an online payment function
  • Need multiple authenticate (regular-user, clinic-user, admin-user)

This system doesn't have many functions. There are 3 kinds of the user below.

  • regular-user

They can book dental appointments online.

  • clinic-user

They can input and check results.

  • admin-user

They can manage all of this system. For example, manage the clinic, and toggle notification settings.

The number of pages I must create is about 20 to 30. I thought I didn't need much time to create it. However, I realized there were many complex pages and functions as we developed. It took more time than I expected. I learned I shouldn't estimate depending on the number of pages only.

I had to build production and develop environments on VPS, but I had no experience. I searched articles and tried many times for late every day.

That made me grow. It was an excellent experience for me. I want to write down that challenging development process.

There are too many input values

I realized the bug that I couldn't update values on a particular page. I checked that page's HTML, receive request function, and model definition, but I couldn't solve that.

The only I could do was searching with google. I googled many times and got the article about PHP settings max_input_vars.

I've done following this article, and I could solve that bug!

I never thought infrastructure settings caused that bug at first. I must keep remembered that.

Payment Function with API

I have created a payment function with Stripe in previous development that is very easy to develop. Concretely I only had to import SDN and paste a few line of Javascript code.

This project had to create that function with the Japanese Payment service GMO Payment. With this service, people can develop more complex functions. But it was more challenging to use than Stripe.

I had not experienced API. I had to learn even how to send requests with Curl, It was very challenging.

The most challenging point in API development was error handling. I postponed and forgot about that development. That made me in trouble at the last minute for release. I had to code until midnight to finish that.

In the end, I was able to finish coding and testing about that before release. I felt relieved. In the next development, I must not postpone coding even if I don't want to do that.

I didn't know what to do to construct an environment in VPS

I said that I had no experience with VPS, I often deploy to a web hosting service.

I can operate in a Web browser (GUI) as I deploy to a web hosting service.

However, I had to operate with Mac Terminal(CUI) for VPS. I'm ashamed to say I didn't know I had to install even PHP(I thought all servers were installed PHP by default). I googled the keyword how to install PHP in VPS and found the command to do that. I copied and pasted without thinking. I was able to finish installing PHP!

I also had to enable HTTPS on my website. To realize that, I got a certificate from Let’s Encrypt.

It was very easy and exciting! I was getting interested in infrastructure for that experience and want to learn about that!

Go to the next project!

I was relieved to be able to release the product in safe.

I want to get a rest, but I have some other development. I have to write some code.

Also I realized the more time I developed, the more skill I could get.

I want to keep growing more and more!

Thank you for reading!