Skip to content

Stroll Brighton is an interactive front-end site that allows users to search for locations, activities and things to do in the city of Brighton.

Notifications You must be signed in to change notification settings

Marta44/Stroll-Brighton

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stroll Brighton

Postcard of Brighton The primary aim of this project is to create a website that provides information about selected venues and attractions in the Brighton area and also offers the services of a tourist guide. The secondary aim of the website is also to allow users to join a social media community in Brighton where they can meet people and share their pictures via Facebook or Instagram. The project can be scalable and improved in the future adding events, festivals and concerts, which are the core of this vibrant city. View the live project in GitHub Pages Image responsive screens

Table of contents


Overview

This is an interactive front-end site that allows users to search for locations, activities and things to do in the city of Brighton (UK). What makes this project different from many other websites is the possibility to contact me with enquires regarding the creation of a personalized tour. The personalized tour can be one of three categories: art, nature or fun. They can also contact me if they need suggestions or information. It is designed to be responsive on all devices (desktop screens, tablets and smartphones) with the awareness that a mobile phone will be the main users choice to browse this website.


User Stories

  • "I want to get in touch with a local person who can guide me around the city".
  • "I want to use a map that auto completes the names of the places I am looking for".
  • "I want to use a map which allows me to browse places by category".
  • "I want to see a map which displays relevant attractions and cultural places to visit".
  • "I want to use a map which displays me the location of the place I am searching for with a label and a marker".
  • "I want to access this website using my mobile phone while I am strolling around the city".
  • "I want to join a social media community in Brighton on Facebook and/or Instagram where I can meet people and share my pictures".
  • "I want to be able to contact Marta via GitHub profile and/or LinkedIn profile".

First time visitor goals

  • I expect to navigate the website easily with a user friendly navigation bar.
  • I expect to interact with a map which guides me in the city.
  • I expect to find relevant information and contents about the main attractions of Brighton.

Returning visitor goals

  • I want to look for a specific place using the search box.
  • I want to use the place type category facility of the map to plan my visit and refine my searches.
  • I want to locate the social media links to join Brighton groups or get in touch with a local guide (Marta Marassi).
  • I want to contact Marta Marassi directly filling a contact form and send an email.

Frequent visitor goals

  • I want to use this website to discover new places, attractions and activities.
  • I want to become an active part of the "Stroll Brighton" community by utilizing the social media.
  • I want to rely on a local person who can give me assistance or ideas about things to do in the city.
  • I want to develop a professional relationship with Marta Marassi.

Site owner goals

  • I want to use the map as a regular user to explore and find new places in Brighton.
  • I want to be contacted through a contact form to my personal email address, be able to guide tourists and give them suggestions.
  • I want users to click on the links of the recommended places and access to their websites.

User Experience

The target audience of this website

  • A large demographic range of individuals:
    • Non Brighton residents.
    • Local residents.
    • International tourists.
  • The attractions displayed are heterogeneous to diversify the offer and please different age brackets.

Users of this site are looking for

  • A personal guide who can provide relevant suggestions and advices about Brighton.
  • A website where they can search and find places using an interactive map.
  • A website where they can find tips and suggestions about what to visit.

1. Strategy

The business goals of this website

  • Showcase the main attractions of Brighton divided into four categories: art sites (museums), outdoor places(parks), cafés and amusement parks.
  • Provide in the tip section links to local businesses and attractions websites.
  • Be contactable to users. Having studied art I wish to guide them to visit cultural places and art sites in the city.

The customer goals

  • Discover new places in Brighton using "My Tips" section.
  • Read interesting content about the city.
  • Be able to contact someone local (Marta) to ask for information.
  • Be guided by a map but also be able to discover their own favorite places.

2. Scope

The scope of this project is helping users to discover the city of Brighton, keep them engaged by using an interactive map and contacting me via email. Following a Minimal Viable Product (MVP) scheme this website wants to accomplish:

  • Clarity.
  • Usability.
  • Respect users expectations and confidence.
  • Appealing design that invokes the pastel colours of the city of Brighton.

3. Structure

The contents and information are readable and not overwhelming. This approach considers that a user is walking in the city and needs an immediate answer to his/her questions. The users needs to visualize and assimilate immediately imagery, contents and the map. Contact is provided through a contact form or through my Github profile or LinkedIn icons in the footer. Social media icons in the footer are meant to be a way to join Brighton community groups or share pictures of the places discovered.

4. Skeleton

The website displays in an unique page divided into four sections. I created wireframes for every section:

5. Surface

Colours scheme: I have used pastel colours which are reminiscent of typical Brighton houses. I took inspiration from this palette: Pastel colors palette

  • Tutu: #fddfdf for the explore section
  • Frosted Mint: #defde0 for the tips section
  • Alice Blue: #def3fd for the booking section
  • For the navigation bar and the footer I choose a Whitesmoke background (#f5f5f5) as it is neutral and in contrast with the colorful sections.
  • For the navigation and footer links: Orange, Lightcoral, Lightgreen and Lightskyblue because provide enough visibility and readability.

Typography:

  • For the Logo I used "Cabin Sketch" Google Font because is artistic and has aesthetical appearance of a doodle.
  • For the main text and contents I chose "Ganja Flower" Google Font because it is user friendly.
  • For the headings I chose "Annie Use Your Telescope" Google Font because it is an hand writing font and pairs with "Ganja Flower". Images:
    • All the images not taken by myself have been credited in "Media". They have been selected to be eye-catching, interesting and engaging. The purpose of the images is to showcase the main locations of the city and encourage users to visit them.
    • I chose the "favorite icon" because it is reminiscent of the famous Brighton beach huts.

Features

Existing Features

  • An unique scrolling page divided into four sections (home-explore-tips-booking).
  • The navigation bar is fixed to the top of the page and brings the users to the different sections.
  • On smaller screen sizes the toggle menu closes after the user clicks on a link to allow a better view of the page's content.
  • The footer is fixed to the bottom of the page and provides copyright info at the bottom-left, social media pages icons (GitHub, LinkedIn, Facebook, Instagram) in the center, if clicked they bring the users to social media platforms opened on a different tab.
  • On the "Explore section" is present a Google Map API.
    • The map allows users to search a place by name. The search box auto completes the word inserted by the user.
    • The map allows to browse the map by four categories (museum, park, cafe, amusement_park). It displays markers of their location and Bootstrap cards of 8/10 places with the photo, name and vicinity of this place. These cards are displayed with a carousel.
  • On the "Tips section" is present a description about the aim of the project.
  • On the "Tips section" is present a carousel which displays the suggested places through pictures, contents and links to their websites.
  • On the "Contact section" is present a form to get in touch with me.

Features to add in the future

  • In the "Tips section" in the future I could add other suggestions especially when the venues for concerts and events in Brighton will reopen.
  • I would like to develop a forum where "Stroll Brighton" users can present themselves, exchange experiences, share ideas and create an online community. Python skills required.

Technologies Used

Languages Used

  1. HTML HTML5
  2. CSS CSS3
  3. JAVASCRIPT JavaScript

Frameworks, Libraries and Integrations Used

  1. Bootstrap4 : was used to provide responsiveness on all device sizes and add some stylistic components.
  2. Hover.css : a third part library used to add the transition effect to social media links in the footer and to underline the navbar text.
  3. FontAwesome : was used to add icons for social media links and for the little icons inside the buttons in the Explore section.
  4. Google Fonts : was used to import typography fonts.
  5. Balsamiq : was used to create wireframes during the design of the layout.
  6. jQuery : was used to make the navbar responsive, to zoom the hero image and to create the carousels.
  7. Popper.js : was used to make the navbar responsive.
  8. Owl Carousel : was used to display my suggestions in the "Tips" section and to display the data called from Google Map API.
  9. AutoPrefixer : was used to analyse the CSS code and make it suitable for all browsers.
  10. GitHub Wiki TOC generator: was used to generate the table of contents for this README file.
  11. Google Map : Interactive Maps API.
  12. EmailJs SDK : EmailJS API.

Workspace and version control

  1. Gitpod : is the open-source IDE (Integrated Development Environment) that I used to create my project.
  2. Git : was used for version control by utilizing the Gitpod terminal (CLI) to commit to Git and push to GitHub.
  3. GitHub : is a hosting platform used to deploy and store the project code after being pushed from Git.

IDE extensions installed in Gitpod

  • Auto Close Tag
  • Bootstrap 4 CDN Snippet
  • Code Spell Checker
  • Prettier - Code formatter
  • Markdownlint

Testing

I have checked the validity of the code with:

Full testing documentation can be found in TESTING.md.


Bugs and challenges during the project

  • EmailJS stopped working when I merged the owl carousel branch into the master branch. I rearranged the scripts in this order: jquery, popper, bootstrap, google map, emailjs. As a result of this action the problem was fixed.
  • For me has been a challenge to understand how to loop through the four types of places and I have to thank my Mentor Ignatius Ukwuoma to have shown me how to build sub-arrays into an array and loop through the results with a for each loop.
  • I have noticed that some of the images called from Google Map were higher than others and the default position of the directional arrows (at the bottom) wasn't user friendly so I positioned the arrows on the left and right side of the image. In this way the user can control the carousel and at the same time view the whole card. I left the directional dots at the bottom like a second choice to control the carousel(only on medium and large screens).
  • Another challenge has been the carousel with the "card places" generated by Google Map. My mistake was that I was calling $("#card-places").owlCarousel() immediately on page load, before the user was doing any search. On page load is empty so it couldn't display anything. I moved $("#card-places").owlCarousel() right after cardContainer.innerHTML with the card. In this way when the user clicked on the first category the carousel was displayed and worked fine. The other problem was that when another category was selected, the results were cleared and the carousel stopped working. This is because I was wiping everything inside the container with cardContainer.innerHTML = "". Then to understand if the div element with the class ".owl-stage-outer" existed, I used the length attribute > 0 and an alert message and the result was that it existed. I noticed that in my index.html I added only owl-carousel and owl-theme (for the navigation) classes but in the dev tool were added by default also the classes owl-loaded and owl-drag. I think that owl-loaded (class after load) prevented the carousel from loading more than once. So on button click on another category couldn't reload again. I tried to remove completely the card container and rebuild it with only the classes (owl-carousel and owl-theme), append it to the carousel-container and define again cardContainer = document.getElementById("card-places"). In this way I cleared the container and called again the carousel.

Deployment

I developed this project using Gitpod, an online IDE (Integrated Development Environment). I have used the following commands throughout the project:

  • git add . or filename (to add the changes and files to a staging area)
  • git commit -m "" (to commit a message about the changes that have been brought)
  • git push (to push the code to GitHub that host my repository)
  • git checkout -b name of the branch (to switch and create at the same time a new branch to develop and test a specific Javascript function
  • git status (to understand in which branch I was working)
  • git checkout master (to switch again to the main branch)
  • git merge name of the branch (to merge the secondary branch into the main one)

I deployed the project following these steps:

  1. Log into GitHub
  2. Selected my repository: Marta44/Stroll-Brighton
  3. Clicked Settings on the navigation menu Settings
  4. Scrolled down to GitHub Pages section. Pages settings now has its own dedicated tab. Click on the link and it opens GitHub Pages: GitHub Pages
  5. I selected the master branch in the publishing Source dropdown menu and pressed Save
  6. The website has been published to GitHub Pages and the page refreshed automatically generating my site URL: Live deployed page
  7. The deployed site will update automatically If I bring changes with new commits.

How to run the code locally:

  1. Navigate to my project GitHub repository Follow this link

  2. Click Code dropdown menu and you have two options:

  • Clone
  • Download the ZIP file (allows you to extract the files on your local machine)

Clone or download Repo

  1. Clone my repository copying and pasting into the terminal of your preferred editor/local IDE 'git clone https://github.com/Marta44/Stroll-Brighton.git'

  2. Press Enter and a clone of this project will be created on your machine

  3. To remove all references to the remote repository type into your terminal: 'git remote rm origin' or 'git remote remove origin' This deletes all references to the remote repository without removing the repository from the remote server

  4. When you clone this project to make Google Map loading on your local machine you have to generate a new API key following these steps Generate an API key and copy your API key into the script in your html file


Credits

Resources Used

Code

Contents

Contents and texts has been written by Marta Marassi and main source of information has been Visit Brighton.

Media

  • The hero image in the home page is from Unsplash and the author is Rhys Kentish.
  • The postcard in the readme file the image on the top-left is from Pixabay and I created it with Canva.
  • In the carousel in the tip section I used two pictures from Pixabay and Pixabay.
  • All the other pictures were taken by me.
  • I used an icon made by Darius Dan Author Darius Dan as placeholder if some of the photos in Places API are not available. It is from Flaticon. Icon-no-image-available.
  • I created the Favorite Icon with LogoMakr and sized it with Favicon
  • I took inspiration from this website for the colours combination Musée Sainte-Croix website

Acknowledgements

  • I would like to say thanks to my mentor Ignatius Ukwuoma for his guidance and precious advices during the project.
  • I would like to thank my new mentor Marcel for his support and encouragement.
  • I want to thank the Code Institute SLACK Community for the assistance and source of learning.

NOTE: This is for educational purposes.

About

Stroll Brighton is an interactive front-end site that allows users to search for locations, activities and things to do in the city of Brighton.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published