Giter Site home page Giter Site logo

ciaran-io / elite-fitness Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 3.0 268.74 MB

Elite Fitness, A full-stack Django app, your online source for health supplements, fitness equipment, & juicers. Join us for convenient access to top-quality products and exclusive offers. Elevate your health and fitness journey with Elite Fitness.

Home Page: https://elite-fitness-f6b7c0ead930.herokuapp.com/

Python 47.59% JavaScript 5.15% CSS 2.24% Procfile 0.01% HTML 45.01%
aws code-institute css3 django full-stack python3 tailwindcss vitejs

elite-fitness's Introduction

โœจ Engineering Concepts into Code: Turning Big Ideas into Digital Reality

Hello! ๐Ÿ‘‹ I'm Ciaran, a versatile Full-Stack Developer embarking on an enriching academic journey in Information Systems and Information Technology at Technological University Dublin. My solid foundation in full-stack web development was carefully built at Code Institute, equipping me with a wide spectrum of technical skills.

Previously, I fine-tuned my business management acumen while managing a successful health food store - an experience that instilled in me strong problem-solving capabilities, tenacity, and a command of operational intricacies. As I dive deeper into the world of coding and system management, I'm excited to leverage this unique blend of technical proficiency and business acumen to deliver solutions that are efficient, user-friendly, and optimized for business success.

Feel free to explore my repositories and connect with me on meaningful projects. Welcome to my GitHub!

๐Ÿ’ก Skills and Experience

๐Ÿ’ป Full-Stack Web Development: Proficient in various programming languages and frameworks, committed to building efficient, user-friendly digital solutions.

๐Ÿ—‚๏ธ Business Management: Proven track-record in effective business operation from my previous role managing a successful health food store. Skills incorporating strategic planning, project management, and resource allocation.

๐ŸŽ“ Ongoing Education: Currently enhancing my technological expertise with a focus on at the renowned Technological University Dublin. This academic pursuit underscores my commitment to continuous professional growth and adaptation in the ever-evolving tech landscape.

๐ŸŽ“ Education

I am presently enrolled in a part-time program at Technological University Dublin, where I am pursuing a B.Sc. in Information Systems and Technology. This flexible schedule allows me to fully dedicate myself to a software developer role while also honing essential knowledge and skills.

The curriculum of my program is meticulously crafted to provide comprehensive coverage of the field. It encompasses crucial subjects such as Programming and Algorithms, Interface Design and Web Development, Object-Oriented Programming, Database Systems, and Computer Communications and Networking.

I graduated with a diploma in Full-Stack Software Development, a comprehensive and rigorous program that fortified my proficiency in crafting robust, scalable, and interactive web applications with impeccable user-experience. I leveraged a diverse array of technologies and frameworks like HTML, CSS, JavaScript, Python, Django, Flask, MongoDB, MySQL, Git, and Heroku, enhancing my versatility as a developer.

This program expedited my expertise in the pivotal steps of the software development life cycle, from requirements analysis, wireframing, prototyping, to coding, testing, deployment, and maintenance. It placed particular emphasis on practical exposure to agile methodologies, integrating continuous testing strategies like TDD (Test-Driven Development) and BDD (Behavior-Driven Development), and documenting the development process, emphasizing the importance of good coding practices for long-term maintenance and collaboration.

Overall, the program's challenging curriculum and hands-on projects have well-equipped me to contribute significantly in a dynamic and challenging software development environment.

Skills Acquired

  • Front-End Development: HTML, CSS, JavaScript, Bootstrap, JQuery, and responsive design.
  • Back-End Development: Python, Django, Flask, MongoDB, MySQL, and Heroku.
  • Software Testing: PyTest, JavaScript, and Jest.
  • Version Control: Git, GitHub, and GitPod.

Course Achievements

Essentials Modules

Throughout the Essentials Modules, I spearheaded the development of five cornerstone projects, cementing my proficiency in key languages, including CSS, JavaScript, and Python. These, regarded as the pillars of programming, played a central role in each project and contributed to a diverse portfolio that unequivocally represents my capabilities.

Full Stack Toolkit Modules

During the Full Stack Toolkit Modules, the incorporation of Python, Django, Flask, MongoDB, MySQL, and Heroku took center stage, introducing me to the comprehensive world of full-stack development. Here, I designed and developed five dedicated projects that each spotlight different aspects of full-stack development. These creations collectively showcase my competence in generating user-friendly web applications that are both dynamic and responsive, demonstrating my ability to handle a variety of technologies and frameworks.

Key Focus Areas
  • E-commerce: Engineered a complete eCommerce application from ground up using Django, a robust Python-based framework, integrating Stripe for secure and reliable payment processing.
  • Advanced Front-End Development: Mastered the creation of dynamic, responsive, and intuitive web applications using the tried-and-true blend of JavaScript, HTML, and CSS to deliver superior user experiences.
  • Data-Centric Development: Proved proficiency in database interactions by developing a fully operational web application powered by Python, Flask, and MongoDB, highlighting my ability to handle complex data structures.
  • User-Centric Front-End Development: Utilized expertise in JavaScript, HTML, and CSS to develop interactive, user-centered web applications designed with responsiveness and usability in mind.
  • Interactive Front-End Development: Demonstrated capability to integrate APIs by building a feature-rich web application using JavaScript, HTML, and CSS, underlining my ability to create highly interactive digital experiences.

Certificates:

Professional Development:

  • React: The Complete Guide (incl. React Router & Redux), Udemy (74 hours) - Feb 2024
  • CS50: Computer Science Courses and Programs, Harvard via edX (12 weeks) - Feb 2024

๐Ÿ“ƒ Projects

mockup

Elite Fitness was my final project for Code Institute to obtain a diploma in full-stack software development. Elite Fitness is a Blend of technology and wellness, setting a distinct standard in online fitness retail. This seamless platform, is built with various technologies such as Python, Tailwind CSS, JavaScript, and hosted on Heroku, caters to an array of fitness needs, from health supplements to training equipment and juicers.

The back-end infrastructure leverages AWS for resilient data storage and optimized content delivery, alongside Heroku for seamless application deployment. These choices ensure an efficient, responsive user experience, contributing positively to user engagement and satisfaction.

Powering beyond a typical e-commerce store, Elite Fitness is a canvas where I weave personalized wellness experiences. Be it a novice embarking on a fitness journey or an accomplished athlete seeking advanced performance enhancers, Elite Fitness caters to all with precision.

Elite Fitness is more than an application โ€“ it's a testament to the transformative power of modern web technologies, creating a user-centric, highly responsive, and secure web application.

mockup

Himawari Sushi is a full-stack application designed to provide the user with a modern, seamless dining experience focused on authentic Japanese cuisine. This project is the culmination of my work as a full stack software developer during my diploma program, showcasing my skills in building a fully functional web application from scratch using a variety of technologies and tools.

Himawari Sushi offers an easy reservation system through the intuitive app, allowing users to plan their next dining experience with just a few taps. Users can explore and order the most popular dishes, and by signing up to the newsletter, users not only stay updated but get discounts on their next meal. Experience a unique blend of tradition and modernity by indulging in the best of what Himawari Sushi has to offer.ssss

mockup

Freyja Healing is one of my first application I built to showcase of my proficiency as a full-stack software developer. This application is a testimony to my adeptness in creating fully functional web applications, built With great care and attention to detail using an array of cutting-edge technologies.

Crafted with Vue.js, and styled using Tailwind CSS, Freyja Healing merges modern tech with health-centricity, making holistic wellness more accessible. Supporting the tech-architecture are Cloudinary and Cloudflare, providing reliable static hosting and security measures respectively, while Nuxt.js ensures an enriched, high-performing user interface.

Through Freyja Healing, I entwine the conveniences of modern technology with the efficacy of natural health practices to empower a more accessible journey towards wellbeing. Freyja is more than an applicationโ€”itโ€™s a leap forward in integrating health-tech innovations to promote a healthier, happier lifestyle. Experience the power of a comprehensive, tech-fuelled wellness journey with Freyja Healing.

๐Ÿ’ผ Professional Experience

  • Web developer: Love Nature | June 2021 - May 2023
  • Career transition to software development : Committed to intensive study, building foundational knowledge of programming principles and languages. | March 2020 - May 2021
  • General manager: Nourish Health Store | January 2019 - March 2020
  • Managing Director: Natural Living Health Store | January 2017 - December 2019

๐Ÿ—บ๏ธ Roadmap 2024

Foundation Phase ๐Ÿค“

  1. Interface Design and Web Development ๐ŸŽจ
  2. CS50's Introduction to Computer Science ๐Ÿ’ป
  3. Computer Technology 1 โš™๏ธ
  4. Programming Paradigms and Data Structures ๐Ÿ“š
  5. Introduction to React: Building Dynamic Web Applications ๐ŸŒ

Advanced Phase ๐Ÿš€

  1. Computing Fundamentals 2 ๐Ÿง 
  2. Object Oriented Programming ๐Ÿงฑ
  3. Computer Technology 2 โš™๏ธ
  4. IOS App Development with Swift ๐Ÿ“ฑ
  5. Programming and Algorithms 2 ๐Ÿ“
  6. Database Systems ๐Ÿ’พ

โš™๏ธ Technologies

Area Technologies Used
CMS WordPress
Front-end HTML CSS Tailwind JavaScript TypeScript Vue.js
Back-end Bun NodeJS Express.js NuxtJS Python Flask Django
Databases MySQL PostgreSQL MongoDB Firebase
Deployment GitHub Git GitHub Actions Heroku Railway AWS Netlify Docker Cloudflare Linux
Hosting Cloudinary Siteground Kinsta
Testing Playwright Vitest

๐Ÿ› ๏ธ Tools

Area Tools
Development Warp Neovim VS Code Webstorm Fig Raycast
Design Figma Affinity Designer Eagle
Testing Postman Chrome DevTools Firefox Developer Edition

๐Ÿ“Š GitHub Summary & Stats

Profile Details


Top Langs

elite-fitness's People

Contributors

ciaran-io avatar dependabot[bot] avatar

Watchers

 avatar  avatar

elite-fitness's Issues

Product Managment

User Story: As an admin, I want to manage the products and categories so that I can update the product catalog.

Acceptance Criteria:

  1. Admin should have an interface to see all the products in the system.
  2. Admin should be able to add, edit, or remove a product from the system.
  3. Each product modification should include alteration of productโ€™s name, SKU, price, description, stock quantity, and images.
  4. Admin should be able to see all the categories in the system.
  5. Admin should be able to add, edit, or remove a category from the system.
  6. Each category modification should include alteration of categoryโ€™s name.
  7. The system should not allow the creation of duplicate product SKUs or slugs

Tasks:

  1. Create product models for the following:
  • Attribute
  • Brand
  • Benefit
  • Category
  • Image
  • KeyBenefit
  • BaseProduct
  • Product
  1. Create an "Admin Dashboard" view to list all products and categories, and offer management options.
  2. Implement "Add, Edit, Delete Product" functionality in the Admin dashboard with appropriate form
  3. Implement "Add, Edit, DeleteCategory" functionality in the Admin dashboard with appropriate form fields.
  4. Test all the above features to ensure they work as expected.
  5. Document the functionalities so that they can be used or updated by other developers in the future.

Implement Product Wishlist

User Story: As a customer, I want to add products to a wishlist so that I can save them for later.

Acceptance Criteria:

  • User can add products to a wishlist for later reference

Tasks:

  • Create a Wishlist model in the products app
  • Create a Wishlist view in the products app
  • Implement django messages to confirm wishlist actions

Social Media Links

User Story: As a customer, I want to share the website on social media so that I can share the website.

Acceptance Criteria:

  • User can visit social media pages from the website.

User Authentication and Registration

User Story: As a customer, I want to register and login to my account so that I can access my profile and checkout.

Acceptance Criteria:

  • User registration functionality implemented with form validation.
  • User login and logout views created with authentication mechanisms.
  • Password reset and email verification features added.

Tasks:

  1. Initialize the Django project & project apps
  2. Create a user model in accounts app
  3. Create a user registration view in accounts app
  4. Create a user login view in accounts app
  5. Create a user logout view in accounts app

USER STORY: Contact & Customer Support

As a User I can contact customer support so that I can have any queries I have answered

Acceptance Criteria:

A customer can contact Elite Fitness through using a contact form and have their queries answered. Send reply to user to let them know that their email was received.

Tasks:

  1. Setup view for to display contact form.
  2. Create a class based form to handle form validation.
  3. Create a contact form template.

Product Reviews & Ratings

User Story: As a customer, I want to review and rate products so that I can share my experience.

Acceptance Criteria:

  • User can review and rate products.
  • Admin can manage reviews.

Tasks:

  1. Create a review view in the products app
  2. Create a model for reviews in the products app
  3. Create a view to display reviews in the products app
  4. Create a admin view to manage reviews in the products app

USER STORY: Provide Support Pagesย 

As a User I can I want access to informative support pages such as an About page, Shipping information, and other helpful resources so that These pages should provide relevant information and answer common questions and concerns

Acceptance Criteria:

  1. The About page should include a concise description of the company & service, its mission or purpose.
  2. The Shipping page should provide detailed information on delivery options, shipping fees, estimated delivery times, and any restrictions or limitations.
  3. The Privacy Policy page should clearly outline the types of personal information collected from users, including but not limited to name, email address, and payment details.
  4. The FAQs page should address common questions, concerns, and issues that users may have.
  5. The support pages should have a user-friendly layout and be easily accessible from the main website or application.
  6. Each support page should contain clear and concise information, avoiding excessive technical jargon or unnecessary complexity.
  7. Navigation menus or links within the support pages should allow users to quickly switch between different support topics.
  8. Contact information and/or a dedicated support channel should be provided on each support page, enabling users to contact customer service or seek further assistance if needed.
  9. The support pages should be responsive and compatible with different devices, including desktop, mobile, and tablet.

Tasks:

  • Create templates views & urls for the following:
    • About view (about page)
    • Faqs view (faqs page)
    • Privacy policy view (privacy policy page)
    • Shipping & information view (shipping & information page)
    • Terms & condition view view (T&Cs page)

Email Marketing through MailChimp

User Story: As a customer, I want to receive email marketing campaigns so that I can know about new products.

Acceptance Criteria:

  • Utilize MailChimp API to send email marketing campaigns to customers.

Tasks:

  1. Create a MailChimp account
  2. Create a MailChimp API key
  3. Add MailChimp API key to .env file
  4. Add MailChimp API key to .env.example file
  5. Add MailChimp API key to Heroku config vars
  6. Create a MailChimp list
  7. Create a MailChimp template
  8. Create a MailChimp campaign
  9. Create a MailChimp view in the marketing app

Testing and Quality Assurance

User Story: As a developer, I want to ensure the quality of my code so that I can deliver a robust product.

Acceptance Criteria:

  • Comprehensive unit tests covering critical functionalities.
  • Integration testing ensuring smooth interaction between components.
  • Bug fixes, error handling, and edge case coverage.

Tasks:

  1. Create unit tests for models
  2. Create unit tests for views
  3. Create unit tests for forms
  4. Generate test coverage report
  5. Generate playwriting e2e tests
    • Login & Logout
    • Register
    • Add to cart
    • Checkout
    • Search
    • Filter

Newsletter Subscription System

Acceptance Criteria:

  • User can subscribe to and unsubscribe from newsletters.

Tasks:

  • Create a Newsletter model in the marketing app
  • Create a Newsletter view in the marketing app
  • Create a Newsletter success view in the marketing app
  • Create a Newsletter form in the marketing app
  • Create a Newsletter admin view in the marketing app

SEO Implementation

User Story: As a customer, I want to find the website on search engines so that I can visit the website.

Acceptance Criteria:

  • Implement SEO best practices to improve search engine rankings.

Tasks:

  • Add meta-description, meta-title, & meta-keywords tags for each page where necessary.
  • Add seo model for prodcucts to add product meta data
    [ ] Add robots.txt file
    [ ] Add sitemap.xml file

Optional: Add additional meta data

  • og:title: Specifies the title of the content.
  • og:type: Specifies the type of content, such as website, article, or video.
  • og:image: Specifies the URL of an image associated with the content.
  • og:url: Specifies the canonical URL of the content.
  • og:description: Specifies a brief description of the content.

Frontend Design and User Experience

User Story: As a customer, I want to have a pleasant shopping experience so that I can enjoy using the website.

Acceptance Criteria:

  • Responsive and visually appealing templates designed with HTML, CSS, and JavaScript.
  • Improved user experience with intuitive navigation, breadcrumbs, and feedback messages.

Tasks:

  1. Create a base template
  2. Create a home page template
  3. Create navigation menu
  4. Add breadcrumbs to the product detail page
  5. Add django messages when adding/ removing products to the cart

Documentation and Deployment

User Story: As a developer, I want to document my project so that I can share it with others.

Acceptance Criteria:

  • Project setup, installation instructions, and usage guide documented.
  • Prepared for deployment with production settings configured.
  • Continuous integration and deployment pipeline implemented.
  • Documentation for the following in separate files:
    • Design
    • Deployment
    • Testing

Tasks:

  1. Create a README.md file
  2. Create a requirements.txt file
  3. Create a Procfile
  4. Create a .gitignore file
  5. Create a .env file
  6. Create a .env.example file
  7. Create a .github/workflows/test.yml file
  8. Create a .github/ISSUE_TEMPLATE/bug_report.md file
  9. Setup Heroku deployment & add even variables
  10. Setup AWS S3 bucket

Implement Product Catalogue

User Story: As a customer, I want to view a list of products so that I can select some to purchase.

Acceptance Criteria:

  • Product list and individual product detail views and templates created.
  • Search and filtering options integrated into the product catalog.

Tasks:

  1. Create a product list view in products app
  2. Create a product detail view in products app
  3. Create a product search view in products app
  4. Create a product filter view in products app

Social Media Sign-up

User Story: As a customer, I want to sign up/login with my social media accounts so that I can access my profile.

Acceptance Criteria:

  • User can sign up/login with their social media accounts.

Tasks:

  1. Install django-allauth
  2. Add django-allauth to INSTALLED_APPS & confiure allauth settings
  3. Update login and signup templates to include google & other providers

Implement e-commerce payment system with checkout

User Story: As a customer, I want to add and remove products from my cart so that I can manage my purchases.

Acceptance Criteria:

  • Functional shopping cart system with add, remove, and update capabilities.
  • Checkout process implemented with address selection and payment integration.
  • Order tracking and status updates added.

Tasks:

  • Create a cart model in carts app
  • Create a cart view in carts app to add/remove/update products
  • Create a cart add view in carts app
  • Add checkout functionality to carts app
  • Create an order model in orders app
  • Create a payment view in orders app
  • Create a payment success view in orders app
  • Add stripe payment integration & webhooks for payment success/failure
  • Add email functionality to send order confirmation and invoice
  • Add email templates
  • Add email settings to settings.py
  • Add email credentials to .env file
  • Add email credentials to .env.example file
  • Add email credentials to Heroku config vars

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.