Final group capstone - Book an Appointment

Estimated time: 60h

Description

The project you are going to build for the Final Capstone Project is based on an app to book an appointment with a mentor. You should follow the given design of the website.

Key features

  • All users can see lists and details of different mentors.
  • Logged in users can book an appointment with a mentor.
  • Logged in users can see list of their own appointments.
  • Admin user can add mentors.
  • Admin user can delete mentors.

Project requirements

ERD

erd

Basics

Features

  • User (name, email, password, role)

    • Signup
    • logs in
    • Log out
    • User can apply to be a mentor (Phase II)
      • By applying, a new Mentor model is made for this user 1-1 relationship (user can have only one mentor profile)
      • User can delete mentorship profile
  • MentorProfile (user_id, name, Photo, [mentorTopics], approved(phase II))

    • List (index)
    • Show detail
  • Topic (label, icon)

    • Only admin can add topics
  • mentorTopics (mentor, topic, rating)

    • User (owner of the mentor profile set their level of skills for the topic)
  • Reservation (user, mentor, date, topic)

  • we get these items from the user:

    • Mentor (is filled automatically if we come from mentor detail page otherwise the user selects from dropdown)
    • Date
    • Topic
  • links (phase two) (name, icon)

  • user can have their links here (we also need a join table)

  • In the navigation panel

    • Mentors: to a page with the list of all mentors)
    • Reserve: to Reservation page
    • My reservations: show all reservation of the logged in user (user can delete them as well)
      • Show name, date and topic
    • Add Mentor (only for admin)
      • When the admin clicks the "Add Mentor" link in the navigation panel they can see a form for adding a new mentor.
      • If admin, we see "add mentor", if user, we see "apply for mentorship". (phase II)
    • Delete Mentor (only for admin to get list of mentors to delete)
      • When the admin clicks the "Delete Mentor" link in the navigation panel they can see a list of all items with title and "Delete" button.
      • When the admin clicks the "Delete" button, the selected item is marked as removed and does not show on the main list anymore.
    • Sign in / Sign out.
    • Topics button (only visible to the admins)
  • On the main page, the user can see a list of Mentors

  • When the user selects a specific mentor, they can see the details page with its full description.

    • In the details page, the user can click the "Reserve" button.
  • Make the app responsive.

  • Add full documentation for your API.

front-end pages

  • Menu.
  • Home page (shows a list of mentors). (social media phase two)
  • Mentor detail page (shows the details).
  • Add mentor page (for admins).
  • Authentication pages (Sign-up page, log-in page).
  • Reservastion page ( form that lets you make a reservation).
  • My-Reservations page ( shows all reservations made by the user, plus delete button).
  • Topics page (only accessible to the admins, they can see all the topics, and add new ones)
  • Who are we? ( Al-metoria ).

Workload distribution

To tackle this challenge, you need to create a Kanban board with a GitHub project that translates the requirements into a set of tasks that you will be able to use to organize your work. You will create your board in a separate activity.