TulaUnogi / cat-beans-cafe

A full stack portfolio project
2 stars 4 forks source link
Cat Beans Café logo

Welcome to Cat Beans Café

A café website.

A cat themed, responsive café website with registration and table booking system for customers. Created as a fourth Project Portfolio for Code Institute.

Link to the live site

- By Karolina Piech


Table of contents

  1. UX
  2. Agile Development
  3. Features implemented
  4. Features Left to Implement
  5. Technology used
  6. Testing
  7. Bugs
  8. Deployment
  9. Resources
  10. Credits and acknowledgements

UX

Database planning

Data structure

Lucid diagram

Data models

UserProfile model

Key Name Field
PrimaryKey customer OnetoOneField
x first_name Charfield
x last_name Charfield
x phone_number Charfield
x email Emailfield

Bookings model

Key Name Field
ForeignKey booking_customer ForeignKey
x booking_date DateField
x booking_time CharField
x tables_booked CharField
x additional_info TextField
x booked_on DateTimeField
x is_confirmed IntegerField
x slug AutoSlugField

UX design

Overview

Design

Initial design planning

Early design stage of this project included making png versions of a homepage and login page prototypes. Thanks to that I could decide on the aesthetic choices before entering the coding stage.

Homepage prototype Login page prototype

I wanted the website to look modern, professional and welcoming. I chose the base colours to be in the shades of brown, black and white, as they may be associated with coffee.

Site User

Goals for the website

Wireframes

The next stage of UX design planning was creating the basic wireframes using Figma. My intention was to create visually pleasing and easy to navigate website. Below I did not include the base homepage and login page, as I used the initial planning examples from above instead.

Large to medium screens

About Us page

Our Cats page

Contact Us page

Menu page

Small screens

Home page

Login page

About Us page

Our Cats page

Contact Us page

Back to Top

Agile Development

Overview

I started this project alongside GitHub Projects with intention of planning and tracking the workflow to manage the expected workload. After setting out the epics for my project I broke them down into a set of user stories and smaller tasks, to help me monitor my progress and finish the website in time. Outside of user stories I also included a separate issues for creating each module of this README file, as I simply found it more motivating this way. To see the project's Kanban page please click here.

User Stories

Initial stage of the project included stepping into the shoes of the future User. I thought about the features and functionality I would expect from the first use of the website and based on that I created a set of 12 User Stories. I labelled 10 of them as mandatory, as they provide the core functionality and source of important informations for the User. The remaining 2 Stories are labelled as NINTH- Nice To Have, Not Important, as they provide some improvements, but are not necessary for the User to enjoy the website's base functionality.

The User Stories include the acceptance criteria and are broken down into smaller, bite- size tasks that I would tick on completion, so I could easily track my progress. During the coding session I would record the encountered bugs, issues and solutions related to the Story in the comments below. Once all of the tasks in the Issue are completed I would move the User Story form "In progress" to "Completed" card im my project's Kanban.

List of Mandatory User Stories

  1. USER STORY: DEPLOYMENT
  2. USER STORY: ADMIN PANEL
  3. USER STORY: CREATE AN ACCOUNT
  4. USER STORY: EDITING PROFILE
  5. USER STORY: DELETING PROFILE
  6. USER STORY: TABLE BOOKING
  7. USER STORY: NAVBAR AND FOOTER
  8. USER STORY: ABOUT US
  9. USER STORY: MENU
  10. USER STORY: GOOGLE MAPS

NINTH: Not Important, Nice To Have

  1. USER STORY: CAT CAROUSEL
  2. USER STORY: BOOKING CANCELLATION
Back to Top

Features implemented

Navbar and Footer:

Index page:

About Us page:

Authentication and profile management:

Bookings:

Responsiveness:

Back to Top

Features Left to Implement

Back to Top

Technology used

Back to Top

Testing

Responsiveness

I was testing for responsiveness on an Ideapad laptop and a Samsung Galaxy A5 using the most up to date versions of Google Chrome, Mozilla Firefox and Opera versions. For more detailed testing I was using Google DevTools.

Index page:

Index page

About Us page:

Index page

Sign Up page:

Index page

Sign In page:

Index page

Manual testing

Account Registration Tests

Test Result
User can create profile Pass
User can log into profile Pass
User can log out of profile Pass
Messages are displaying Pass
Messages are dismissable by button and timeout Pass

User Navigation Tests

Test Result
User can easily navigate to Bookings Pass
User can access About Us page Pass
User access their account page Pass
User can access the card content in About Us Pass
SuperUser can access admin page Pass

Account Authorisation Tests

Test Result
Only Superuser can access admin page Pass
Non authorised user book a table Pass
Non authorised user won't access profile page Pass

Booking and Profile Tests

Test Result
User can make a booking Pass
User can view all of their bookings Pass
User can delete their booking Pass
User can edit booking Pass
User can make more than one booking Pass
User can delete their account Pass
User can edit their information Pass
User can see the confirmation information Pass

Admin Tests

Test Result
Items display correctly on front-end when updated / added Pass
Admin can confirm or decline bookings Pass
Back to Top

Known bugs

Back to Top

Deployment

The deployment stage of the website should follow the steps below:

Create the Heroku app

Set up enviroment variables

Heroku deployment

Forking the repository

By forking the GitHub Repository you can make a copy of the original repository to view or change without it effecting the original repository. You can do this with following steps:

Create a clone of this repository

Creating a clone enables you to make a copy of the current version of this repository to run the project locally. To do this follow steps below:

Back to Top

Resources

Back to Top

Credits and acknowledgements

Pictures

Code

Back to Top