Develop a court reservation app

If you have questions or if you want to share your opinion about Aware IM post your message on this forum
Post Reply
jannes
Posts: 100
Joined: Tue Jul 02, 2019 12:22 pm

Develop a court reservation app

Post by jannes »

Is it possible in AwareIm to develop this app ?

A reservation system to make (court) reservations for tennis (and/or other sports / events).

The system contains a table with members.

After login of the member :
Show the free blocks.
Reserve a court in blocks of 30 minutes. With a maximum number of blocks.
Only 1 court at the same time, only 1 reservation per day.
Daily between 08:00 and 23:00 hr.
Closed on special days (so the administrator can "block" certain days).

The system should send emails :
- after reservation.
- reminder a couple of hours before the "event".

No payments needed yet because the members pay already to the club.
----------

Is it possible and can someone support with development ?

regards
Jannes
PointsWell
Posts: 1457
Joined: Tue Jan 24, 2017 5:51 am
Location: 'Stralya

Re: Develop a court reservation app

Post by PointsWell »

You may not get any responses to this request as it is a bit "can I do this, can you do it for me".

I would start with four business objects.
Members
use the RegularUser BO or create a member BO in the Business Object Group SystemUsers.

Court -
a simple BO with a name and any other information that you want to capture about each court.
Add attributes:
  1. Court Number Number Required
  2. Court Name Text (Calculated)
  3. Surface check box (Clay, Grass etc)
  4. Floodlights (Y/N)
Rules
  1. If Court is New OR Court.Number Was Changed then Court.Name = 'Court '+Court.Number
  2. If Court is new and Exists Court Where Court.Number=ThisCourt.Number AND Court.ID<>ThisCourt.ID then Report error 'Court Already Exists'
Booking Periods -
use this as reference data to set the time that a court can be booked
  1. Start Time
  2. End Time
  3. Name
Rules
  1. If Start Time changed make End Time = TIME_ADD(StartTime, 0.5)
  2. Ensure End time > Start Time
  3. If Booking Period was changed then BookingPeriod.Name=Start Time+' - '+End Time
Booking
Use an appointment type BO
Add fields
  1. peer single to Member - relationship to the member
  2. peer single to Court
  3. SelectedDate
  4. peer single to Booking Period - Put a filter on Booking Period to ensure that you only show Booking Periods only where there is not a Booking for the court for that time. This is a better UX than producing an error when the user tries to book at a time that already exists.
Rule
If Booking IS NEW
  1. then set the Booking StartTime to be Booking.SelectedDate contatenated with the Booking.psBookingPeriod.StartTime and Booking EndTime to be Booking.SelectedDate concatenated with the Booking.psBookingPeriod.EndTime
  2. Booking Subject becomes Booking.psCourt + Booking.psMember
  3. If Exists Booking Where Booking.psCourt = ThisBooking.psCourt, Booking.StartTime=ThisBooking.StartTime, Booking.EndTIme = ThisBooking.EndTime Booking.ID<>ThisBooking.ID then report error 'Court booked at this time' (You want this to check that someone didn't book the same court/time as the user)
Create a query of type Calendar/Schedule
Put the Query on a Visual Perspective for the members view.
Allow users to create bookings as an operation from this Query. Use the new form that you have created.

Resources:
Time and Date Calculations p 403 of user guide
Calendar/Schedules See https://www.youtube.com/watch?v=MlthX36WPxk, p42, 313 of User Guide

Things I would not do:
Create an instance for every booking slot - this is pointless effort and you will end up having to go and delete these when you want to block courts and then recreate them when you unblock courts. You will also end up creating issues for users who want to book the court 1 day later than you have created the booking slots for.
johntalbott
Posts: 619
Joined: Wed Jun 17, 2015 11:16 pm
Location: Omaha, Nebraska
Contact:

Re: Develop a court reservation app

Post by johntalbott »

Any of the functionality you specifically asked about can be implemented in AwareIM. Based on the few specifications listed it "appears" simple.

A couple of thoughts ...
1. My guess is that there is a lot of additional functionality that will be needed once you get into it.
2. The challenge with any app is developing a top-notch intuitive UX. IMO ... that requires going beyond what AIM provides "out of the box" to eliminate the unnecessary re-rendering of screens, queries, etc.

As a quick view of the competition, these folks appear to have a good feature set, solid reviews, and are cheap. https://courtreserve.com/
VocalDay Solutions - Agility - Predictability - Quality

We specialize in enabling business through the innovative use of technology.

AwareIM app with beautiful UI/UX - https://screencast-o-matic.com/watch/crfUrrVeB3t
Post Reply