Amir-Rastkhadiv / hackathon-love-team7

A website to send messages in bottles and find your perfect match

Home Page: https://pipeline-love-team7.herokuapp.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Overview

This project is a conjunct effort of Amir Rastkhadiv, Chris Carabine,Cian O'Connor, Daniel Callaghan, Monique Veldman and Rodolfo Frainer.

The project aims to connect people through half phrases at a time.

Contents

About

Message in a bottle is an ocean of potential where you can met kindred spirits or fish for that special someone! Add your own bottled messages to our vast ocean or fish to your heart's content for other people's messages. Sign up today!

  • Sign up and create a profile with us
  • Fish for bottles in the ocean
  • Respond to messages that appeal to you
  • If the recipient likes your reply they can now contact you directly
  • Write secret half messages for your own bottles
  • Add them to our ocean and see who replies to and finishes your message
  • A received reply offers you the option to contact them directly

UX Design

User Stories

  • As a user I would like to be able to access the about section of the page to understand it's purpose and how to interact with it.

  • As a user I would like to be able to create an account.

  • As a user I would like to be able to login into the account I've previously created.

  • As a user I would like to be able to edit my Bio on my account.

  • As a user I would like to be able to change my account's password.

  • As a user I would like to be able to create my own bottled messages so other people can interact with.

  • As a user I would like to be able to choose which bottle i want to pick.

  • As a user I would like to be able to respond or not to a bottle that I have picked up.

  • As a user I would like to be able to access my inbox so that i can read sent and received messages.

  • As a user I would like the messages in my inbox to be refreshed periodically.

  • As a user I would like to be able to read the bio and see the profile picture of a user that has replied to my bottled message so I can decide if I want to contact them or not.

  • As a user I would like to be able to contact other users who have replied to my bottles via a contact form.

Typography

Colors

#590c8d #590c8d

#FFCCCC #FFCCCC

#42193D #42193D

#C31AAD #C31AAD

#FFFFFF #FFFFFF

Wireframes

Wireframes can be found here

Features

Features left to impliment

Technologies Used

Languages Used

Libraries

  • Bootstrap Used to design a mobile-first responsive website layout.
  • jQuery Loaded as part of the Bootstrap CDN starter template
  • Popper Loaded as part of the Bootstrap CDN starter template

Tools

Frameworks, Libraries & Programs Used

  • Git

    • Git was used for version control by utilizing the Gitpod terminal to commit to Git and push to GitHub.
  • GitHub

    • Used to store, host and deploy the project files and source code after being pushed from Git.
  • GitPod

    • An online IDE linked to the GitHub repository used for the majority of the code development.
  • CodePen

    • An online code editor and open-source learning environment used to test small sections of code quickly and easily.
  • Visual Studio Code

    • A locally installed IDE connected to the GitHub repository for when there was no internet connection to use Gitpod.
  • Font-Awesome

    • Used for icons to enhance headings and add emphasis to text.
  • Google fonts

    • Used for the website fonts.
  • Coolors

    • An online tool used to choose the website colour scheme.
  • Am I Responsive?

    • A tool for taking a quick snapshot of the responsive breakpoints of the website to visualize how the site will look on different device screen sizes in one place. The resulting screenshot is also used as the README.md logo image.
  • What is my Screen Resolution

    • An online tool to find out the screen resolution on your device used for CSS @media queries ​- Favicon
    • Used for icons to enhance headings and add emphasis to text.
  • Django

    • Django is the framework used through the project.
  • Google Fonts

    • Google fonts were used to import the 'Lato' font into the style.css file which is used on all pages throughout the project.
  • Balsamiq

    • Balsamiq was used to create the wireframes used on this project.

    Back to contents

Dev Tools

Chrome Dev Tools & Firefox Developer Tools

Development Lifecycle and Task Allocation

  • The Team is made up of all experience levels from those who have only just started the course, right up to Alumni.
    • Our first task was to figure out at which level everyone is and how much time each of us has.
  • Our team is Daniel Callaghan, Christopher Carabine, Rodolfo Frainer, Monique, Amir Rastkhadiv and Cian O'Connor.
  • Initailly, we split all the task between us according to experience and competence.
  • As the team developed and became more confident, we were able to help one another depending on the task and time we had free.

Version Control

Version control for this repository is managed within GitHub and Gitpod using separate forked repositories for each team member.

Each member synchronised their own GitHub repositories by adding an additional remote named upstream linked to the team's main GitHub Repository by entering the following steps Git commands:

git remote add upstream https://github.com/Seamse/hackathon-love-team7.git
git fetch upstream
git merge upstream/master
git push

The following describes a typical Team Member's forked repository branch structure. The word 'contributor' is a placeholder for the otherwise name of the person or persons working on a paticular branch:

  • Master - this is the default branch and the source for the repository deployment.

    • contributor-README - this branch is used for updating the README.md and testing.md documentation only.

    • contributor_backend -this branch is used for creating and updating all backend activities.

    • contributor_hompage - this branch is used for styling and working on the index.html page.

    • contributor_style - this branch is used for styling each page across the site so that they all look the same.

​ The following workflow steps are used to create and update branches within Gitpod and to push changes back to GitHub. ​ ​

Gitpod Workspaces

  1. Open Gitpod from Github using the Gitpod button. This needs to only be done once at the start of the project.
  2. Start the Gitpod Workspace which opens an online IDE editor window. ​ ​

Branches

  1. For changes to be made to any documentation files, the git command git checkout documentation is used to checkout and switch to the documentation branch.
  2. For changes to be made to other files under normal site development, the git command git checkout development is used to checkout and switch to the development branch.
  3. To create a new branch for bug fixes, use the git command git checkout -b <branch-name> to create and switch to the new branch. ​ ​

Working within a branch

  1. New or modified files are staged using the git add . command
  2. The changes are committed using git commit -m "<commit message>" command.
  3. If the changes are in a newly created branch, the committed changes are pushed from Gitpod to GitHub using the git push --set-upstream origin <branch-name> command as there is currently no upstream branch in the remote repository.
  4. For branches that have already been synchronized, the committed changes are pushed from Gitpod to GitHub using the git push command. ​ ​

Merging branches in GitHub

  1. Opening the repository in Github, a new pull request is created for the updated branch and assigned to its related Development, Development - JavaScript or Bug Fixes project.
  2. The changes are reviewed to ensure there are no conflicts between the updated branch and the Master branch.
  3. The changes are then merged into the Master branch and the merge request is closed. The Project entry is automatically moved to the Done card. ​ ​

Update Gitpod with the latest GitHub commits

  1. To update Gitpod with the latest commits From GitHub, the git checkout master command is used to checkout and switch to the master branch.
  2. Use the git pull command to update the master branch and reset the pointer.
  3. Now switch to the other branches in Gitpod using the git checkout <branch-name> command and use the git merge origin/master command to update each branch in turn.
  4. Use the git push on each branch to update the relevant GiHub Branches to the same commit as the Master branch.
  5. Repeat steps 3 - 17 regularly to ensure updates are saved and correctly version controlled in GitHub.

Pull Requests

  1. To update the upstream remote repository, each Team Member creates a pull request from the their forked master branch (origin/master) to the upstream Team repository (upstream/master)
  2. The pull request is reviewed and any merge conflicts are resolved before merging into the upstream master branch.
  3. Team Members must then fetch the latest commits again to their forked repositories using the following Git commands:
git fetch upstream
git merge upstream/master
git push

Back to contents

Testing

Validation Results

HTML

W3C validator

CSS

(Jigsaw) validator

JSHint

JSHint test completed with no error or warnings.

Lighthouse

Result for Desktop

Lighthouse Validation

Result for Mobile

Lighthouse Validation

Test Cases

  • To access the about section of the page:
    • Low resolution devices

      Click on the hamburger menu
      Hamburger-Low-Res

      A few options will appear, click on the about button
      About-Low-Res

      Once clicked it will open a modal window
      About-Modal-Low-Res

      To close it the user can either press the X button or click outside of the modal
      Close-Modal-Low-Res

    • High resolution devices:

      On the right corner of the nav bar you will find the About button
      About-High-Res

      Once clicked it will open a modal window
      About-Modal-High-Res

      To close it the user can either press the X button or click outside of the modal
      Close-Modal-High-Res

Back to contents

Deployment

GitHub Pages

The project was deployed to GitHub Pages using the following steps...

  1. Log in to GitHub and locate the GitHub Repository
  2. At the top of the Repository (not top of page), locate the "Settings" Button on the menu.
  3. Scroll down the Settings page until you locate the "GitHub Pages" Section.
  4. Under "Source", click the dropdown called "None" and select "Master Branch".
  5. The page will automatically refresh.
  6. Scroll back down through the page to locate the now published site link in the "GitHub Pages" section.

Forking the GitHub Repository

By forking the GitHub Repository we make a copy of the original repository on our GitHub account to view and/or make changes without affecting the original repository by using the following steps...

  1. Log in to GitHub and locate the GitHub Repository
  2. At the top of the Repository (not top of page) just above the "Settings" Button on the menu, locate the "Fork" Button.
  3. You should now have a copy of the original repository in your GitHub account.

Making a Local Clone

  1. Log in to GitHub and locate the GitHub Repository
  2. Under the repository name, click "Clone or download".
  3. To clone the repository using HTTPS, under "Clone with HTTPS", copy the link.
  4. Open Git Bash
  5. Change the current working directory to the location where you want the cloned directory to be made.
  6. Type git clone, and then paste the URL you copied in Step 3.
$ git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
  1. Press Enter. Your local clone will be created.
$ git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY
> Cloning into `CI-Clone`...
> remote: Counting objects: 10, done.
> remote: Compressing objects: 100% (8/8), done.
> remove: Total 10 (delta 1), reused 10 (delta 1)
> Unpacking objects: 100% (10/10), done.

Gitpod

  1. Install the gitpod browser extension. Gitpod Browser Extension
  2. Go to the project repository. Here
  3. click the gitpod button beside the about section. Gitpod Deploy

Back to contents

Credits

Acknowledgements

Our team is Daniel Callaghan, Christopher Carabine, Rodolfo Frainer, Monique Veldman, Amir Rastkhadiv and Cian O'Connor.

​The team would like to thank Nemanja for his support, encouraging us along the way.

And Code Institute for setting up these amazing projects that allow people to come together and do what they love in a safe space.

About

A website to send messages in bottles and find your perfect match

https://pipeline-love-team7.herokuapp.com/


Languages

Language:HTML 32.0%Language:Python 29.9%Language:JavaScript 22.6%Language:CSS 11.5%Language:Dockerfile 3.9%Language:Procfile 0.0%