Visit us at https://stakr-calendar.herokuapp.com/
By: Alex Montgomery (AMontgomery123), Thai Quach (ThaiQ), Sean Milner(shengda419), Nguyen Cuu Khanh (khanhsjsu)
Problem Statement
Many people in the professional world need a way to manage appointments. The problem, though, is that many calendar applications do not present a streamlined way to manage them.
Product Objectives
Build an application using Python-3 and the Flask Framework to create an appointment system. This system will allow the customer and owner to communicate with one another by creating meetings through a Calendar-like interface.
Python3
pip3
python3 setup.py
pytest
python3 run.py
1. The database location is defaulted on the local machine.
2. You can change the database location to another third party in "config.py"
pipenv lock
Make sure to use the affiliated python version in Pipfile.
Functional Requirements:
-
Database should hold owner login information
-
User should not be able to login to an account without providing matching information
-
System sends confirmation emails for both registration and appointment confirmation
-
Owner can configure what times they are available using Calendar
-
Customer can follow email to select desired appointment time with Owner
-
Owner can successfully log out of the system
Non-Functional Requirements:
-
System must display messages in English
-
System will respond to owner and customer commands within 3 seconds
-
The site shall be able to run on Windows, Mac, and Linux machines
-
System must use Gregorian calendar
Summary: Allows a user to register for an account
Actor(s): Unregistered user
Pre-conditions:
- User must not have an existing account
- User must have a valid email address
Primary sequence:
- Click on "Register"
- Input desired login info (email) and password
- Click on “Create Account”
- Confirm email address
Alternative sequence:
- Email does not exist
- System displays error message “Invalid email address” to the customer
Post-condition:
- Customer email is successfully confirmed
- Customer receives a confirmation email and has accepted it
- Customer can now login with their credentials
- Email has not been confirmed
- Customer can not login because they have not confirmed the email verification
- Customer has not successfully created an account
- No account was created presumably due to invalid login info
Summary: Allows a user to log in to their account
Actor(s): Registered-Owner
Pre-conditions:
- Registered an account
- Confirmed email address of account
Primary sequence:
- Enter a username and a password
- (Optional) Select ”Remember Me”
- Click “Login”
Alternative sequence:
- If user does not have an account
- User inputs an email and password that has not been made
- System displays message to customer saying the account does not exist
- Invalid email
- User inputs an email that has not been registered
- System displays message to customer saying the account does not exist
- Invalid password
- User inputs an email matching one in our database, but has an invalid password
- System displays message to customer saying the password was typed incorrectly
- User wants to register an account
- User selects the “Register” button
- System redirects user to the register screen
Post-condition:
- User has successfully logged in
- User is redirected to his/her home page by the system.
- User has not successfully logged in
- User remains on the login page until they provide proper credentials
Summary: Allows the owner to configure their desired time for customers to make an appointment with
Actor(s): Owner
Pre-conditions:
- The owner must be logged into their account
Primary sequence:
- Click on "Set Working Schedule"
- Choose desired "Working Time" through a drop-down list
- Click on “Save”
Alternative sequence:
- Click on “Cancel”
- System redirects User to home page
Post-condition:
- Working Schedule has been set
- System displays a message “Working Schedule set” to the Owner
- System redirects the owner to home page
- Working Schedule was cancelled
- System redirects the owner to home page
- Working schedule is the same as it was previously or not set if the owner has not set it previously
Summary: Allows the owner to get their unique URL which allows their customer to create an appointment from their selected time
Actor(s): Owner
Pre-conditions:
- The owner must have an account
- The owner must be logged in
Primary sequence:
- The owner will log into their account
- The owner click the “My appointment link” button
- The owner must click and copy a unique URL-link
Alternative sequence:
- The owner will add customers' emails into a text box
- The owner must click “Send my invitation”
- An email will be sent to customers' emails
Post-condition:
- The owner chooses to copy their URL
- A URL is available for copy/paste
- The owner chooses to send an email
- An email with the owner's URL will be sent to their customers
Summary: Allow a customer to make an appointment through the owner's invitation-URL
Actor(s): Customers
Pre-conditions:
- Must have the invitation-URL from the owner
- The customer receives URL through email
- The customer recieved URL directly from the owner
Primary sequence:
- The customer selects the link URL in the email
- The calendar shows the available date/time and customers pick their date.
- Confirm Reservation
- If data were valid: confirmed reservation
- If data were invalid: showed problem in reservation
Alternative sequence:
-
Customer cancels making the appointment
- Customer clicks “Cancel”
- System displays message “Appointment was cancelled”
-
Owner is busy at selected time
- System displays the message “The person is busy at that time. Please select a new time”
-
Error when connecting to database information
- System displays the message “System error communicating to database. Please refresh the page and try again shortly and make sure you have proper internet connection”
Post-condition:
-
Customer has successfully made appointment
- Notify the owner and customer about the appointment.
-
Customer cancels making appointment
- Notifications not sent to customer and owner
-
Owner is busy at selected time
- Notifications not sent to customer and owner
-
Error when connecting to database information
- Notifications not sent to customer and owner
The owner should be able to: log into their account, configure their working schedule, get/send a URL invitation link to make an appointment with them.
The customer should be able to: make an appointment with the owner through their invitation URL without the need to log in.





