Markyjay / fs-django-project

0 stars 1 forks source link

TutorSight

A website to help students find the help they need.

TutorSight

Portfolio 4 project as part of the Diploma in Full Stack Software Development by Code Institute.


TutorSight is an innovative online platform designed to seamlessly connect students with experienced teachers. The platform serves as a bridge between learners seeking personalized educational support and skilled educators offering their expertise. TutorSight facilitates the exploration of diverse subjects, providing a space where students can find the right teacher based on their specific needs. Whether it's academic assistance, skill development, or specialized knowledge, TutorSight empowers users to engage in one-on-one sessions with qualified teachers, fostering a collaborative and tailored learning experience. With user-friendly features and a commitment to educational excellence, TutorSight aims to enhance the accessibility and effectiveness of remote learning, creating a dynamic environment for knowledge-sharing and academic growth.

TutorSight is a comprehensive full-stack website that enables users to explore detailed tutor profiles, share reviews, and engage in discussions on various subject topics. Through its user-friendly interface, TutorSight offers a seamless experience for individuals to discover expert tutors, provide valuable feedback through reviews, and actively participate in conversations related to specific subjects.

Link to live site - https://tutorsight-django-project-fa74b7b42ae2.herokuapp.com/

CONTENTS


Site Objectives

The primary objective of the TutorSight project is to create an intuitive and user-friendly platform that connects teachers and students, fostering a dynamic learning community. Through detailed tutor profiles, reviews, and discussion forums, TutorSight aims to facilitate effective communication and collaboration between educators and learners. This project strives to provide a centralized hub where users can seamlessly explore tutor profiles, share and access reviews, and actively engage in discussions on diverse subject matters. The overarching goal is to enhance the educational experience by promoting transparency, accessibility, and a sense of community within the tutoring landscape.

My three main objectives were:

User Experience/UX

Target Audience

User Stories

New Visitor Goals

New visitors to Tutorsight are individuals exploring the platform for the first time. They are looking for an intuitive and user-friendly interface that allows them to quickly understand the website's purpose and functionality. Their primary goals include

Existing Visitor Goals

Returning users are individuals who have already used Tutorsight before. They expect

Students Seeking Tutors:

Students looking for tutors want a seamless experience in

Teachers Offering Tutoring Services:

Teachers providing tutoring services aim to

Parents/Guardians:

Parents or guardians seeking tutors for their children want

Design Choices

Color palette

The color palette chosen includes shades of blue and green for a calming and professional feel. White backgrounds and dark blue-gray elements maintain readability and a modern appearance. Puce is used as an accent color for attention-grabbing elements. The color scheme aims to convey trust, growth, and a positive learning environment, which aligns with the tutoring site's purpose. Coolors Pallete

Typography

The font family has been updated to "Montserrat" for a modern and clean look. The font size and weight for the brand have been adjusted for better visibility. The overall changes aim to enhance readability and maintain a professional appearance suitable for a tutoring website.

Logo and Favicon

Logo

Favicon

Wireframes

Homepage Wireframe

Create Booking Wireframe

Edit Booking Wireframe

Delete Booking Wireframe

Flow Diagram

Here is a diagram showing the possible flow through the site. There are 2 sections shown here. On the left it shows the Admin and the right shows a site user.

Site Flow Diagram

Database Plan

The database plan is fairly simple, but it shows the information that is stored within the database, the type of data and if it is logged as a Primary or Foreign key where applicable.

Database plan

Features

Registration

The user can create an account

Create an Account

The user can logout of an account

Account Logout

Session booking

The user can book a session with any tutor

Book a session

The tutor can accept or deny a booked session with a student.

Session is under review

The user can edit previously booked session with tutor.

Edit a session

The user can delete a previously booked session with tutor

Delete a booking

Features not implemented

Comments and reviews have been removed due to lack of time.

Future Features


Technologies Used

Here are the technologies used to build this project:

Programming Languages, Frameworks and Libraries Used

Agile

This project was designed using Agile methodology, utilising the Project Board and Issues sections in GitHub

Testing

As each section or Function/Model was built during this project, I was testing for functionality and styling issues that may have arisen (see table below), which were corrected or fixed before continuing. I also had friends test the site by signing up, adding and deleting comments using various devices on varying platforms (IOS, Android, Mobile, Tablet etc) and reporting back any issues they encountered with functionality or styling.

Manual Testing

For any Fails, there is a more detailed description below the table

ADMIN TEST OUTCOME PASS/FAIL
Create a Booking Book a session successfully PASS
Edit a previous booking Only able to implement edit directly after its creation PASS
Confirm a booking Did not have enough time to implement this FAIL
Delete Booking Booking deletes successfully PASS
Write a comment Could manually enter comments using admin PASS
Delete User Comments Could manually delete comments using admin PASS
Delete Review Could manually delete reviews using admin PASS
Create 7 Test Posts to check Pagination Next/Previous Page Appears at bottom of screen PASS

(*) - Due to securing a new position in November my time that I could allocate to this project diminished significantly and I got stuck at many points along the way, It was only in the last few weeks that I was starting to understand python and had very little if any experience with bootstrap. Implementing models connecting views and urls properly was very difficult when creating a new type of model from what was shown in the walkthrough, I made things very difficult for myself unintentionally. If i could go back I would certainly prepare better and with the knowledge I have now I could create a much better project. I know myself this is a substandard attempt I only wish you see the effort I made and I hope it merits a pass.

User

TEST OUTCOME PASS/FAIL
Create Account Created successfully Pass
Login Login Successful PASS
Logout Logout Successful PASS
Create a Booking Book a session successfully PASS
Edit a previous booking Only directly after creation PASS
Confirm a booking Did not have enough time to implement this FAIL
Delete Booking Booking deletes successfully Pass
Write a comment Ran out of time to implement this feature FAIL
Delete User Comments Ran out of time to implement this feature FAIL
Delete Review Ran out of time to implement this feature FAIL
Filter Posts by category Ran out of time to implement this feature FAIL

(*) See Bugs below

Bugs

PostgreSQL Version Mismatch Error:

Lighthouse

The performance scores appear to be low, and I believe this is due to the images uploaded for each blog post being hosted on a third-party cloud-based platform.

Desktop

Lighthouse Desktop Score

Validation Testing

HTML & CSS

HTML & CSS testing was completed using W3 Validator

HTML Validation completed

Python Testing

Python pep8 validation was done via Code Institute's Python Linter

The only errors recieved here were where some lines of text exceeded the limit of 79 characters, but these have now been rectified. Python Linter test example

Python Files Tested:


Deployment

Github Deployment

The website was stored using GitHub for storage of data and version control. To do this I did the following;

After each addition, change or removal of code, in the terminal within your IDE (I used codeanywhere for this project) type:

The files are now available to view within your github repository.

Repository deployment via Heroku

  1. Cloudinary URL
  2. Postgres Database URL
  3. DISABLE_COLLECTSTATIC
  4. Port (8000)
  5. SECRET_KEY

Deployment of the app

Credits

This project was based on the Code Institute's - I think therefore I blog walkthrough module which provided a standard blog 'base'. From this base I customised a lot of the layout and styling with Bootstrap and custom CSS. I also added a custom model for booking a session. This allowed me to create a functionality within the site for users to filter through teachers and their reviews and comments selecting a suitable tutor if needed.

I also added several custom Views and Forms to the site, as well as ensuring that all links and desired functionality was working as intended.

For inspiration and fine-tuning of my code, I referred to John Elder's youtube channel Codemy where I was able to get a better understanding of how to correctly create this type of product using Django and Bootstrap.

The wireframe mockups were created using Figma

Once complete, the readme file was passed through a spelling and grammar check via Grammarly


Media

For placeholder images, I have used picsum which provides a library of stock images that display as a placeholder.

All other content and images are my own.


Acknowledgments and Thanks

For inpiration in general, for code, design help and advice, I'd like to give thanks to;

Patricia Young my mother who has been encouraging and patient with me throughout the project.

Jubril my mentor at Code Institute who was very patient and generous with his time.

Kyle Clow and Stephen Dawson new friends and recent hackathon partners who have helped me throughout my project with encouragement and patience. I can not thank them enough.

Other Slack members and the code institute tutoring service were also helpful throughout the project.