Skip to content

kafabkaren/msthree-ekafagym

Repository files navigation

eKafagym

Welcome to eKafagym Web App

MS3 Responsiveness.JPG

Project rationale

This web app was designed to help the Kafagym members be able to plan for their workouts. This is done by creating, reading, editing, and even being able delete their workouts as a reference while training.

User Experience (UX)

It has been designed in such way that its visitors will be able to navigate the web app features easily and with help of simple but clean colour combination.

User stories

  • A user needs to be able to navigate the web app pages with ease on different devices.
  • A user needs to be able to sign up and in to able to use the web app.
  • An anonymous user should not be able to add/edit/delete any workout or profile.
  • An anonymous user should not be able to view other users' profile.
  • Admin of the platform should be able to add/edit/delete any workout and manage the workout plans.
  • A user should be able to add/edit/delete any workout or profile.
  • A user should not be able to add/edit/delete any workout of other users.
  • An anonymous user should not be able to search the added workout.

Design

The web design main target is to provide the user with the ability to interact with the game. The layout consists of features and elements that allows the user to navigate and use the interact with the game.

  • Colour Scheme

  • - The dominating color throughout the entire layout is light grey which is combined with dark grey color used for header in the navbar. In order to make the text buttons and logo stand out, I used the orange color for which created a harmonious combination for both text and buttons background color.

  • Typography

  • - This was generated by materialize used mainly of styling.

Wireframes

The wireframes for the site were created with help of Balsamiq. They feature the site look from different angles i.e computer, mobile phone.

  • eKafagym Computer View Wireframe - wireframe

  • eKafagym Mobile Phone View Wireframe - wireframe

Features

Existing Features

Feature Feasibility Importance
Navbar logo 5 5
Logo Profie page 5 5
Navbar Home 5 5
Sign In link 5 5
Sign Up link 5 5
Profile link 5 5
Add Workout link 5 5
Workout Plans btn 5 5
Add Workout link 5 5
Workout Plans btn 5 5
Searching function 5 5
Add, Update, Edit, Remove workout (Admin only) 5 5
Add, Update, Edit, Remove workout plan (Admin only) 5 5
Add, Update, Edit, Remove workout (registered user) 5 5

Technologies used

Languages Used

  • HTML5
  • CSS3
  • JavaScript
  • Python
  • Flask
  • MongoDB

Framework, Libraries, Websites & Tools Used

  1. Materialize:

    • Materialize was used to ensure the responsiveness and styling of the website.
  2. Git

    • For version control, Git was used mainly to commit with help of Gitpod terminal and Push to GitHub.
  3. GitHub

    • GitHub is used for storing the code pushed from Git.
  4. Balsamiq

    • Balsamiq was used to create the website home page wireframe during the design process.
  5. ColorZilla

    • ColorZilla was such a handy extension used to pick the appropriate hexadecimal during the design process.

Validation

In order to check the validity of the website code, the W3C Markup Validator and W3C CSS Validator were used on each page of the website to check the syntax errors.

  • HTML Validator returned some errors where jinja has been used.
  • CSS Validator returned zero errors in the styling.
  • JavaScript Validator returned five warnings but no errors were identified.
  • pylint app.py was used to check python errors.

Compatibility Testing

The site is compatible with different devices including mobile and tablet as well as computer. The responsiveness aspect was regularly checked using Google Chrome inspect features without forgetting Safari and Mozilla Firefox.

Testing User Stories from User Experience (UX)

As a user and the plater at same time of the game on the website, I want to:

  • Navigate the page easily.

  • The page layout makes it easier to navigate around. The features on the web page are straightforward to find and get along with with ease.

  • Sign in and Sign up.

  • The user is provided with the field to enter their their data.

  • User was able to sign up and in to able to use the web app.
  • An anonymous user was not be able to add/edit/delete any workout or profile.
  • An anonymous user was not be able to view other users' profile.
  • Admin of the platform is able to add/edit/delete any workout and manage the workout plans.
  • User should is able to add/edit/delete any workout or profile.
  • User is not be able to add/edit/delete any workout of other users.
  • An anonymous user is be able to search but not able to edit workout.

Backend

Users must have an account to create workouts so there is a users collection that has username and password as keys of the data. username in users collections is linked with the username in workouts collection because users who have an account can only create workout and they create workout in their own account. Same logic applies as username in users collection that users can only create workout for the categories available in a categories collection so it is liked with workout_plan in workouts collection. Only admin can edit categories in categories collection so it was created as an independent collection. The data in all the collections are retrievable and can be identified by the key or unique id of the object.

Further Testing

  • The website was tested through different browsers; Google Chrome, Mozilla Firefox, Microsoft Edge and Safari browsers.
  • The website was viewed through various devices including iPhone7 and iPad, large screen and laptop to check it responsiveness.

Deployment

heroku

The project has been deployed using Heroku

  • Create a local requirements.txt("pip3 freeze -- local > requirements.txt" in CLI) and Procfile("echo web: python app.py > Procfile" in CLI) ready to use with Heroku

GitHub pages

The following steps were followed to deploy the project to GitHub Pages:

  1. After logging in to GitHub, 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 reach 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.

Workspace

In order to write wode, I use Gitpod IDE.

  1. After logging in to Gitpod, I choose the 'kafamem/msthree-ekafagym' workspace.
  2. Then, I select open from adjacent three dots. Then the workspace name opens the project design interface. This has terminals, coding area as well as the preview mode.

Credits

code

  • The project was mainly inspired by the Code Institute mini project.

content

  • All the text content was written by the developer.

Acknowledgements

  • My mentor for his technical guidance.
  • Tutor support at Code Institute their technical support.

About

Project #3: A gym web app automated by Python, Flask and MongoDB.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published