Skip to content

ThoMot/Final-Exam-Scheduler-Internet-Programming-2019

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is the Final Exam in CST336, by Thora Mothes

This is assignment let us create a scheduler web app. The project is set up with a MySQL database and can be viewed at https://cst336scheduler.herokuapp.com/. Please allow time for the server to respond first time loading the page. The project received a score of 100 and the grading rubric can be seen on the front page.

A ERD diagram and a screenshot of the database can be seen at the bottom of this document

  • Unfortunately the database has been taken down, so signup and sign-in no longer works for this application.
  • I have removed the redirect when trying to access the dashboard without logging in, so it can be accessed by adding /dashboard

Assignment description:

Scheduler is a tool that allows a user to set up a schedule of available time slots in which they would be able to meet, then share an invitation link with people to book time with the user. (Check out https://calendly.com/ for an example of this in the real world.)

  • The data should be stored in MySQL and all activity with the server should be using AJAX calls to API endpoints that interact with MySQL

Dashboard

The app needs to give the user the ability to see the appointment time slots they have made available in the future. This should be done in a list on the Dashboard:

  • If a date is in the past, do not show it in the Dashboard. You should have data that you manually enter into your data set that is in the past to demonstrate that you are omitting past dates.

Add Time Slot

If the user wants to add more available time slots, they should be able to do so by opening a modal that accepts the information about the appointment they want available. (Yes, this would be tedious in a real-life app...see the Black Diamonds for a slightly better way to allow a user to enter available time slots.)

  • Once the Add button is clicked, the time slot should be added to the data set, then the data set should be saved to the server using an AJAX POST. When the POST is successful, the Dashboard should be refreshed.

Remove Time Slot

When the user clicks on Delete on an available time in the Dashboard, the user should be prompted with a confirmation modal:

(This is no longer available as the database is down)

When Yes, Remove It! is clicked, the appointment time slot should be removed from the data set, then the data set should be saved to the server using an AJAX POST. When the POST is successful, the Dashboard should be refreshed.

When Cancel is clicked, the modal should close and the time slot should not be removed.

Black Diamonds

Login (♦️♦️♦️)

Create a login facility for the user using BCrypt storing the login credentials in a User table.

  • A signup page is optional but may be easier to use to create the user account.

How the project will be graded:

# Task Description Points
1 You provide a ERD diagram representing the data and its relationships. This may be included in Cloud9 as a picture or from a designer tool 10
2 Tables in MySQL match the ERD and support the requirements of the application 20
3 The list of available appointments is pulled from MySQL using the API endpoint and displayed using the specified page design 20
4 Available times with dates in the past do not show up in the Dashboard list 5
5 A user can add an available time slot to the MySQL using the API endpoint and displayed using the specified modal design 20
6 A user can remove an available time slot from MySQL using the API endpoint 15
7 The user confirms the removal using the specified modal design 10
TOTAL 100
This rubric is properly included AND UPDATED (BONUS) 2
BD Login works with a User table and BCrypt 20
BD Add Google Signin for app login 10
BD The app is deployed to Heroku 5
BD A banner file can be uploaded and displayed 20
BD The user can add multiple available time slots as specified 10
BD In a separate page, you show the correct list of available time slots to the user who navigates to the correct invitation URL 10
BD You correctly implement booking of the appointement, including all side effects 30

ERD information:

Database Information:

This displays all the appointments in the database:

About

Final exam in internet programming. Scheduler App

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published