Code Monkey home page Code Monkey logo

calizenic's Introduction

Calizenic

Calizenic is a web application designed specifically for calisthenics athletes who seek a simple, user-friendly platform to create, log, and track their hybrid workouts. With the growing popularity of bodyweight training and calisthenics around the world, my platform aims to provide a seamless experience for athletes of all levels to efficiently create workouts and monitor their progress.

My application targets calisthenics athletes and fitness enthusiasts who want a dedicated platform to manage their workout routines. Calizenic simplifies the process of creating and logging workouts while providing useful exercises to help users stay motivated.


site-image

UX:

Calizenic aims to unite calisthenics athletes seeking a straightforward platform for designing, logging, and tracking their specialized workouts. Catering to a complex and demanding fitness discipline, the platform strives to offer a seamless experience for athletes of all skill levels, from novices to seasoned practitioners. The site's visual elements and overall design focus on delivering an enjoyable user experience, characterized by an appealing and aesthetically pleasing interface.


Users i would like to target:

  • An individual passionate about calisthenics and looking for a platform to create, log, and track workouts.
  • Someone seeking a user-friendly interface that simplifies the process of designing personalized calisthenics routines.
  • A beginner or advanced calisthenics athlete interested in monitoring their progress and setting new fitness goals.
  • A person who values an engaging and aesthetically pleasing digital platform for their workout management.
  • Someone interested in connecting with fellow calisthenics enthusiasts and sharing workout tips, progress, and experiences.
  • An individual who appreciates the convenience of accessing their calisthenics workout data from any device, at any time.

My website aims:

  • As a calisthenics enthusiast myself, I want to offer a dedicated and easy-to-use workout app that fills the gap in the market, catering specifically to calisthenics athletes like me.
  • I want to provide a wide range of workout plans, exercises, and progress tracking tools to support myself and other users in achieving our fitness goals.
  • I aim to create a platform that can be customized to meet my unique needs and preferences, ensuring a personalized workout experience that is tailored to my goals and abilities.
  • I want to foster a community of calisthenics enthusiasts like myself, where we can share experiences, knowledge, and support each other in our fitness journeys.
  • I am committed to continuously improving and expanding the app's features and functionalities based on user feedback, keeping up with evolving fitness trends and user needs.
  • I will ensure the app's compatibility and seamless performance across various devices, making it easy for users like myself to access our workout plans and track our progress anytime, anywhere.

Agile Development Process:

In this project, I utilized a Kanban project board to effectively manage tasks and progress. I organized the tasks using three main labels: Must Have, Should Have, and Could Have. This approach ensured a structured and efficient workflow while prioritizing and implementing the various features. You can view it here

kanbanboard


User Stories:

In this project, I created over 20 user stories to outline the different features and requirements. User stories help us understand the software from the end user's perspective and highlight the value each feature provides. These user stories guided the development process, making it easier to prioritize and focus on the most important aspects with each athlete in mind.

  1. User Story: exercise weight selection
  • As a user, I can select the exercise weight so that I can maintain purposeful workouts and track progress.
  1. User Story: workout naming
  • As a user, I can input a name for my workout so that it is unique and easy to navigate to.
  1. User Story: rename workout
  • As a user who has created a custom workout, I want to be able to rename the workout for my current preference.
  1. User Story: delete a workout
  • As a user, I can delete a workout from my log so that i can correct any mistakes or incorrect information logged.
  1. User Story: add a workout template
  • As a user I want to be able to add a new workout template to my account, so that I can save and reuse the workout in the future.
  1. User Story: track number of completed workouts
  • As a developer, I can add a feature so that the user can view the number of workouts they have completed in their account.
  1. User Story: start a workout
  • As a user, I can select a workout from my templates to start so that I know what im doing.
  1. User Story: finish a workout
  • As a user who has completed a workout, I want to be able to press a "Finish Workout" button so that I have it recorded in my workout log.
  1. User Story: quick start workout
  • As a user, I can quickly start a pre-determined workout routine after log in page so that I save time.
  1. User Story: timedate of workout
  • As a developer, I can add the time and date of when each workout was completed so that the user can track and plan their routine.
  1. User Story: note text field
  • As a user, I can input a note under a workout in the log so that I can refer to it and read useful information.
  1. User Story: sign up functionality
  • As a user, i want to easily navigate to the register for an account page and sign up.
  1. User Story: account functionalities
  • As a developer, I want to implement account/profile creation functionality, so that users can easily create, read, update, and delete their account/profile information.
  1. User Story: login capability
  • As a user, I can securely log in to my Calizenic account so that I can access my personal information.
  1. User Story: log out capability
  • As a user, I can securely log out of my account so that my current session is finished until I revisit.
  1. User Story: base.html design
  • As a developer, I want to design a smart & pleasing homepage, so that users have a positive & enjoyable experience when navigating Calizenic.
  1. User Story: readme.md
  • As a developer, I can create documentation so that other developers can understand the purpose and technical details of the website.
  1. User Story: testing.md
  • As a developer, I want to create a testing.md file, so that I can document the testing procedures & outcomes.
  1. User Story: security measure
  • As a developer, I need to create an env.py file and add it to .gitignore, so that I can securely deploy the website without exposing sensitive secret keys or information.
  1. User Story: pagination for list view
  • As a user, i want to be able to easily sort and look through a list of items on the page.

Wireframes

During the early stages of this project, I employed wireframes as an essential tool in the design process. Crafting wireframes enabled me to visualize the layout and functionality prior to writing any code or finalizing the visual design, ultimately conserving time and resources by avoiding potential adjustments later. Initially, I began my mornings early on in jotting down basic layouts, which were then refined into more sophisticated wireframes with the help of Balsamiq.

These wireframes served as my rough designs for the project and underwent work throughout its development. The significance of wireframing is in its ability to detect potential design issues early, allowing a more effective and streamlined development journey.

The following are the initial designs that were crafted and modified during the course of the project:


Project Schema

Planning and designing the database schema early in the development process was crucial for the success of the project. A well-structured database schema enables efficient data organization, storage, and retrieval, which directly impacts the performance and scalability of the application.

By carefully considering the schema design upfront, I was able to identify the relationships between different entities, as well as the required data types and constraints. This understanding allowed me to streamline the development process by reducing the likelihood of encountering data-related issues later on, such as data inconsistency or redundancy.

This was my early attempt of creating the schema with the help of an ERD diagram:

erd-diagram


Features

The features on the website help make it easier and more enjoyable for users. The navigation bar helps people find what they need quickly, while the jumbotron and call-to-action button on the landing page grab attention and encourage users to get started.

The responsive footer gives users access to important links, and the simple login and sign-up forms make it easy for people to join or sign in. The edit log feature lets users customize their workouts, and the view workouts list with pagination keeps everything organized and easy to browse.

All of these features work together to create a great user experience, making people want to use the site and tell their friends about it. Here are some of the elements of my site im most proud of:


Landing page

The landing page provides a visually appealing introduction to the site, with clear messaging and a call-to-action button that encourages users to explore further.

landing-page

jumbotron

The jumbotron is a large, attention-grabbing element that highlights important information or promotions, helping to draw users into the site's content.

jumbotron

dropend-bar

The dropend bar offers an easy-to-use navigation system, allowing users to find the features they need quickly and efficiently.

dropend-bar

edit-log

The edit log page enables users to customize their workout logs, providing flexibility and personalization to their fitness journey.

edit-log

login/sign in

The login and sign-in pages offer simple and straightforward forms for users to access their accounts or join the platform.

login

log-entry

The log entry page allows users to input their workout data, helping them track their progress and stay motivated.

log-entry

footer

The footer provides quick access to essential links and information, while also maintaining a clean and organized layout.

footer

nav-bar

The navigation bar is a user-friendly menu that helps users navigate the site easily and find what they're looking for.

nav-bar

mobile-device-response

The mobile-device shot view demonstrates that the site is fully responsive and adapts well to different screen sizes, ensuring a positive experience for users on any device.

mobile-device


Web Design

My design philosophy is centered around simplicity, user-friendliness, and creating a visually appealing experience. I believe that a well-designed website should not only be easy to navigate but also leave a lasting impression on its users. With this in mind, I chose a color palette and design elements that work together to achieve these goals.

The color choices for the website include blue, light blue, deep red, and a white background. Blue is known to evoke feelings of trust, stability, and calmness, making it an ideal choice for a fitness platform like this. Light blue adds a touch of freshness and energy, while the deep red provides contrast and attracts attention to important elements on the site. The white background creates a clean and minimalistic look, ensuring that the content remains the main focus.

To complement the color scheme, I opted for minimalistic shapes and a vector-style background image. These design elements contribute to the overall visual harmony and make the website more engaging without being overwhelming or distracting. The combination of simple shapes and vibrant colors creates a modern and inviting atmosphere, encouraging users to explore the platform and engage with the content.

coolers

Ultimately, the goal of the design is to create a long-lasting impression on users, making them feel comfortable and motivated to use the platform for their fitness journey. By combining this color palette, minimalistic shapes, and an eye-catching background, I believe that the design is both enjoyable and functional.

Typography

For the typography choices on Calizenic, I selected KaushanScript-Regular and Source Sans Pro to create a visually appealing and easy-to-read experience for users.

KaushanScript-Regular is a stylish and modern script font that adds a touch of elegance and personality to the platform. I chose this font for headings and important elements because it captures attention and sets the tone for the site's overall design aesthetic.

On the other hand, Source Sans Pro is a versatile and clean sans-serif font that provides excellent legibility for body text and other content. Its simplicity and clarity make it an ideal choice for the majority of the text on the website, ensuring that users can easily read and comprehend the information provided.

By combining the distinctive and eye-catching KaushanScript-Regular with the readability and functionality of Source Sans Pro, I aimed to create a harmonious balance.

Deployment

GitHub

This project began by forking a specialized Code Institute template which simulates a terminal in the web browser. The steps to set up the GitHub repository were as follows:

  1. Click the "Use this template" button.
  2. Name the repository
  3. Launch the project using the Gitpod web extension.
  4. Pin the project in your Gitpod workspaces for easy access.

Version Control

Version control was managed using Git, and the following steps were taken:

Make changes to project files in Gitpod. Use the git add command to stage files for commit (e.g., git add filename or git add . to add all files). Commit changes with a descriptive message using the git commit -m "Your commit message" command. Push changes to GitHub with the git push command. Alternatively, use Gitpod's Source Control staging area to stage and commit changes. Stage files, add a commit message, and then commit and push changes to GitHub.

Clone Repo

Creating a clone enables you to make a copy of the repository at that point in time - this lets you run a copy of the project locally: This can be done by:

  1. Navigating to https://github.com/Ian-Garrigan/calizenic
  2. Clicking on the arrow on the green code button at the top of the list of files
  3. Select Local then HTTPS copy the URL it provides to the clipboard
  4. Navigate to your code editor of choice and within the terminal change the directory to the location you want to clone the repository to.
  5. Type 'git clone' and paste the HTTPS link you copied from GitHub
  6. Press enter and git will clone the repository to your local machine

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 repository calizenic
  2. At the top of the Repository (not the top of the 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.

Final Deployment with Heroku

The below steps were followed to deploy this project to Heroku:

  1. Go to Heroku and click "New" to create a new app.
  2. After choosing the app name and setting the region, press "Create app".
  3. Go to "Settings" and navigate to Config Vars, enter the below:
    • SECRET_KEY: (Enter your secret key)
    • DATABASE_URL: (Enter the database URL from ElephantSQL)
    • CLOUNDINARY_URL: (Enter Cloudinary API URL)
    • PORT: 8000
  4. Leave "Settings" and go to "Deploy". Scroll down and set Deployment Method to GitHub. Once GitHub is chosen, find your repository and connect it to Heroku.
  5. Scroll down to Manual Deploy, make sure the "main" branch is selected, and click "Deploy Branch".
  6. The deployed app can be found here.

TESTING

Testing can be found here: TESTING.md

Technologies used

Languages:

  • HTMl5

  • CSS3

  • Python

  • Javascript

Frameworks & Tools

  • Django

  • Bootstrap

  • Crispy-forms

  • Allauth

  • Cloudinary

  • Postgresql

  • Git

  • Heroku

  • Github

  • Balsamiq wireframer

  • Font Awesome & Font Squirrel

Credits

I would like to thank my mentor Tim Nelson. Your insights and advice have not only contributed to the success of this project but also helped me gain a deeper understanding of the field. I am truly grateful for the time and effort you have invested in mentoring me. I would like to wish you all the best in your future in Germany. Everybody at Code Institute will miss you greatly!

calizenic's People

Contributors

ian-garrigan avatar

Watchers

 avatar

calizenic's Issues

User Story: readme.md

As a developer, I can create documentation so that other developers can understand the purpose and technical details of the website.

User Story: 403 page

As a developer, I want to implement a 403 error page for redirecting unauthorized users, so that I can improve the security of user data from potential threats.

User Story: base.html design

As a developer, I want to design a smart & pleasing homepage, so that users have a positive & enjoyable experience when navigating Calizenic.

User Story: 500 page

As a developer, I want to create a 500 error page, so that users are notified when an internal server error occurs.

User Story: 404 page

As a developer, I want to implement a 404 error page, so that users are notified when they have accessed a page that doesn't exist.

User Story: finish a workout

As a user who has completed a workout, I want to be able to press a "Finish Workout" button so that I have it recorded in my workout log.

User Story: security measure

As a developer, I need to create an env.py file and add it to .gitignore, so that I can securely deploy the website without exposing sensitive secret keys or information.

User Story: rename workout

As a user who has created a custom workout, I want to be able to rename the workout for my current preference.

User Story: note text field

As a user, I can input a note under a workout in the log so that I can refer to it and read useful information.

User Story: timedate of workout

As a developer, I can add the time and date of when each workout was completed so that the user can track and plan their routine.

User Story: account functionalities

As a developer, I want to implement account/profile creation functionality, so that users can easily create, read, update, and delete their account/profile information.

User Story: testing.md

As a developer, I want to create a testing.md file, so that I can document the testing procedures & outcomes.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.