Repository navigation
Project Overview
Note: This overview was developed by the course instruction team. The overview is included in the project wiki so that the wiki is self-contained.
Campsites are vital to Alberta tourism. This province is home to five spectacular national parks and people love to visit them. Campsites are hard to reserve and even harder when you have to book them so far in advance. Furthermore, they are all spread out across different websites and applications.
We want a mobile application where people can make reservations at campsites that are popular and fill up fast. We want to allow people with limitations such as work, disability, etc. to be able to sign up for these events fairly and not have to sit refreshing a webpage until they can get a chance at reserving a spot.
How? Lottery! If I am a busy campsite owner, I will post my campsite or campsites for a block of time and I will let everyone join the waiting list for a period of a week. After the week is up, I will ask the system to choose 5 people to reserve in a first-come first-serve basis. The system will then notify the people. If they say no they do not want to reserve, they are free to do so. I can monitor the progress and then access to the final list of everyone who reserves.
Lottery systems are great because you don’t have to be first to get a chance to go, you just have to say you are interested and if you’re lucky you will be offered a chance. This gives people who need the time, the time to sign up properly without a time pressure. Accessibility!
-
Pooling System
- Campsite owners can draw from a waiting list of interested entrants to reserve their stay at the campsite.
-
Availability Schedule
- A calendar view of availability set by a campsite owner for their campsite.
- Used by entrants to reserve on a first-come first-served basis.
-
QR Code Scanning
- Entrants can scan QR promotional code to view details about the campsite and also join the waiting list for an active lottery.
-
Firebase Integration
- Utilize Firebase for storing campsite details, reservation lists, and real-time status updates.
-
Multi-User Interaction
- Distinguish between entrants, campsite owners, and admins with special roles and privileges granted to each actor.
-
Image Upload
- Allow campsite owners to upload promo images.
- Allow entrants to upload profile images.
-
Geolocation Support
- Be able to attach a geolocation to the campsite listing. This is the location provided by the campsite owner.
- Entrants can view the campsite location by its geolocation on a map.
-
I want to reserve a campsite near Banff so I can go rock climbing. I go to the University of Alberta Van Vliet Complex and see that a poster for a campsite in the Banff National Park area. I scan the QR code and view the campsite listing in the app. I see they have listed availability for the dates I am looking to go and an active lottery for 2 more days. So, I click join waiting list. 2 days later, I was selected by the lottery to book. When I go to book, I see that the campsite has been booked for those dates I wanted. Since the dates I wanted were booked, I click decline on the lottery. Boo.
-
I own a campsite in the Hinton-Grande Cache area. The campsite can accommodate up to 8 people and it includes an outdoor cookhouse and an on-site tennis court. I register my campsite in the app and enter that it is available for the weekends in May 2027. The price is $65 per night. I click publish. Then, I create a campsite lottery listing for the weekends in May. People can also scan the automatically generated QR code to view the listing with details about the campsite and join the waiting list.
-
I want to reserve for a stay in Jasper National Park for 2 nights for me and my friends. I open the app, filter campsites by date and location, and see they have a Jasper campsite listed during those dates. However, the campsite I wanted has no available lottery. I keep browsing and find other campsites that have active lotteries. I join waiting list for a few campsites. I get a notification that I won and a campsite is available to book, and I reserve it. Later, there is a forest fire warning in the campsite area. I look on the app and notice my reservation was rejected by the owner and I got a refund. Phew!
| Actor | Description |
|---|---|
| Entrant | Someone, on behalf of a group, who declares their interest in reserving a campsite |
| Campsite Owner | The person or organization that creates and manages campsite listings |
| Administrator | The entity that administers and moderates the application infrastructure |
| Term | Definition |
|---|---|
| QR Code | A scannable code, either a barcode, a QR code, or other code scannable by QR code scanning libraries |
| Waiting List | A list of entrants who show interest in a specific campsite listing |
| Sign Up | An action of registering/confirming for a campsite when successfully selected |
| Reserve | An action of confirming a campsite reservation opportunity |
| Profile | A screen on the application that holds information about an entrant |
| Campsite | A name, location, maximum occupancy, price, rating, optional promotional image, rules and cancellation policy, availability, and campsite owner |