So let's think about what we're going to build as the first project in this course, and it's always
good to have a sense of what you want to do before you actually start working.
Otherwise, you just kind of make it up as you go along and that rarely turns out well.
So just in general terms, let's think about what kind of project we will build that will allow us to
learn some important techniques and methodology in the go language and what our actual Web application
will be.
And we are going to build a Web application.
So we, first of all, need to decide what we're going to build, have an overall sense of the project's
scope, what's going to be included in the project and what key functionality has to exist.
And what I want to do is I want to pretend that we own a bed and breakfast and that bed and breakfast
has two rooms and we want to rent those out to people online.
So we're going to have a bed and breakfast.
It's going to have two rooms.
And people should be able to come to a website, look at what's available, search for certain dates
that they might want to stay with us and then make a booking and reservation.
How do we do that?
Well, what are we going to need to do?
We're going to, first of all, have to have a Web site that showcases the property.
So we'll go through the procedure of building templates and go and populating that with information
that shows all the wonderful features that our bed and breakfast has and why people should choose to
stay there.
We also need to allow people to book a room for one or more nights.
That means they have to come to the site, choose what room they might want to stay in, and then search
to say, hey, I want to stay here from July the 6th to July the 10th.
Is the room available?
And we have to decide if that room has already been booked by somebody else and if it has to say sorry,
those dates aren't available, would you like to try different ones or say, sure, the room is available,
would you like to book it?
And if the room is available, the guest should be able to enter some information and have information
that the host knows what to prepare for when the person arrives or the people arrive.
And then we need to notify the guests that their reservation was successful either by sending them an
email or a text or whatever.
And we also need to notify the property owner, hey, you got a new reservation.
You might want to pay attention to it and make sure that things are ready before the guest arrives.
OK, that seems like reasonable, unreasonable assumptions, key functionality.
In addition to allowing someone to book a room, we need to have a kind of back end system that the
owner of the bed and breakfast logs into to see who's coming and when they're coming, they need to
be able to review existing reservations.
We should probably show a calendar of their upcoming reservations and past reservations.
They should be able to change or cancel the booking because, you know, people's plans change and someone
might say, oh, we're going to stay for an extra day or no, we can't come at all, whatever it may
be.
So these are the kinds of things that we need to do.
Now, this only takes a couple of minutes to go over in general terms, but there's a lot of work to
make this happen.
And it doesn't matter if you're building the program and go or are you doing it in.
No, Jess.
Or or whatever it may be, there's a lot of functionality that we need to think about.
So to make this happen, what kinds of things are we going to need?
Well, obviously, we're going to have to have some kind of authentication system.
We want the owner to be the only person that can go in and change a booking or look at bookings and
get this information.
So it has to be a secured with a password or some means of logging into a backend system.
So we're going to have to have authentication.
We're also going to have to somewhere have somewhere to store this information.
Where are the bookings go?
What about users that can log into the back system?
This has to be stored somewhere.
So clearly a database seems like the obvious place to store this information.
And we also need some means of sending notifications around.
We need to be able to send an email or send an SMS message, a text or both.
So we need to think about how we're going to implement these things.
And it's a fair bit of work, but it's kind of fun.
And we're going to go through and build a fully functional system that allows people to book reservations
online.