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
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
- 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.
- 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.
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.
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.
# | 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 |