Skip to content

Magda-R-bit/Wild-Wellness

Repository files navigation

Wild Wellness

Project live link

Screenshot of Main Page

Wild Wellness is a platform designed to help people reconnect with nature through wellness retreats, outdoor adventures, and cozy cabin stays. Whether you're looking to relax, meditate, or go on an adventurous journey surrounded by wildlife, Wild Wellness offers a variety of activities to recharge and rejuvenate the mind, body, and spirit.

This website is designed for nature enthusiasts, wellness seekers, and anyone in need of a peaceful getaway. It's perfect for those who want to escape from the stresses of modern life, and their routine, and experience the healing powers of nature.

Contents

UI/UX

User Interface (UI) and Experience (UX)

Agile

Wild Wellness was built using Agile approach, allowing me to stay flexible and deliver features in incremental steps. I followed Agile principles to manage tasks and ensure continuous improvement throughout development.

To keep track of tasks and progress, I used a Kanban board to visually organize work, monitor the flow of tasks, and ensure that each feature was delivered efficiently.

  1. Sprint Planning:
  • I planned my tasks in short sprints, typically lasting 1-2 weeks, to stay focused on specific goals. I focused first on functionality of my project. Each sprint would target the development of core features, like user authentication, checking cabin availability, booking system and view of booking list, updating and deleting booking.
  1. Kanban Board:
  • I created GitHub Project to help me manage tasks by moving them trough various stages from To Do, to In Progress, and finally to Done.

Screenshot of Kanban Board Issue

Wireframes

  • Figma (Used to create Wireframes)

Screenshot of Wireframes Home Screenshot of Wireframes Cabin

ERD Diagram

  • Graphviz (ERD Generated using django-extensions and Graphviz to visualize the relationships between the models and improve the understanding of the database structure)

Screenshot of ERD

Design

Colour:

The primary colours chosen for this website are green: rgb(17, 107, 54) and light-green: rgb(164, 224, 164), for its association with nature, health, and well being.

Green is often associated with relaxation and harmony, which aligns perfectly with the theme of wellness and self-care.

Navbar Buttons

Features

Existing Features

  • User authentication with Django Allauth (signup, login, logout).
  • Responsive UI with Bootstrap 5.
  • Booking system with availability validation.
  • Review system with modals for easy editing.
  • CRUD Functionality:
    • Bookings – Users can create, view, update, and delete their bookings.
    • Cabins – Admins can manage available cabins.
    • Reviews – Users can add, edit, and delete their feedback. Admin can approve or delete review.

Navigation

  • Responsive Navbar with burger dropdown manu
  • Navigation options depend of user authentication

Navbar Burger

Footer

  • Responsive Footer with social media links and address

Footer Full Footer

Home Page

User can start photo slider by clicking on the image

Home Page

Check Availability Form

Form

Cabins

Cabins

Sunset View

Sunset View Sunset View

Lake View

Lake View Lake View

Wild View

Wild View Wild View

Reviews

Reviews Form

Reviews Form

Reviews approved by admin

Reviews approved

Reviews pending admin's approval

Reviews

Register Form

Register

Log in Form

Log in

My Bookings

Booking list with FullCalendar visability of unavailable dates marked in red

Booking List

Update Booking

Booking Update Form

Delete Booking

Delete Booking

New Booking

Booking Form

Log Out

Logout Form

404 Error Page

404 Error

Future Features:

  • Create Treatments app.
  • Create Meals app.

Technologies

Language

Framework

Database

Frontend

  • HTML (Used to structure the content and pages of the application. HTML templates are used to display dynamic data in the frontend)
  • CSS (Used for styling the application)

Backend and Server Tools

  • Gunicorn (Python HTTP server for WSGI applications)
  • WhiteNoise (Serves static files efficiently in production)

Django Libraries

Development & Code Formatting

  • Pillow (Python Imaging Library)
  • Black (Python code formatter)
  • Flake8 (Python linter used for python code validation)

Deployment & Hosting

  • GitHub ( Repository hosting service used for version control)
  • Heroku (Cloud platform where project was deployed)
  • Cloudinary (Cloud storage for images)

Development Environment

Testing

Manual Tests and Results

  • Testing for layout and functionality completed on the below browser:

    • Chrome ✅
    • Edge ✅
    • FireFox ✅
    • DuckDuckGo ✅
  • For more manual tests please refer to Manual Testing

Automated Tests

  • Automated test created for booking app to test app functionality. All tests ok, no errors found.

Model Test Form Test Form Test 2 Views Test View Test 2 View Test 3

  • Tests Results

Tests Results

Validation

base.html

Base HTML

index.html

Home Page

header.html

Navbar HTML

footer.html

Footer  HTML

404.html

Error Page

Base CSS

Python

To maintain clean, readable, and PEP8 compliant code throughout the project:

  • Black was used as an automatic code formatter. Since the project contains multiple Python files, Black ensured consistency and adherence to PEP8 standards across all files.
  • Flake8 was used as a Python linter to check for potencial errors and enforce coding standards.

Special attention was given to views.py files for cabins and booking apps to ensure high quality code, so double checked these files with CI Python Linter

Cabins Views

Booking Views

Lighthouse Testing

Mobile

Lighthouse Mobile

Desktop

Lighthouse Desktop

Bugs

Fixed Bugs

  1. Modal for Updating Reviews did not work

    • Issue: The update review modal was not functioning properly, preventing users from editing their reviews.
    • Fix: Fixed the form submission method inside the modal and ensured the correct review ID was passed to update the right review.
  2. Booking Form overlapping validation did not work

    • Issue: The form was incorrectly flagging valid booking updates as overlapping. When a user tried to adjust their booking (e.g., shorten the stay), the system incorrectly rejected the update.
    • Fix: Adjusted the overlapping booking validation logic in forms.py to exclude the current booking instance when checking for conflicts.
  3. Booking List View Test failed

    • Issue: The test cases for booking views were failing due to image handling by ResizedImageField and Cloudinary
    • Fix: Adjusted the test setup to exclude image validation when testing views. This ensured that tests didn't attempt to access Cloudinary stored images.
  4. Static Files did not load in Deployment (WhiteNoise Issue)

    • Issue: CSS and JavaScript files were not loading correctly after deployment.
    • Fix: Configured WhiteNoise in settings.py and made sure collectstatic was running properly.

Unfixed Bugs

  • No unfixed bugs.

Deployment

Version Control

  • The project was developed using the Code Institute Template, the Gitpod editor, and was pushed to GitHub in the remote repository Wild-Wellness.
  • Git commands were used to push the code to the repository.

Deployment to Heroku

  • The project was deployed to Heroku with the following steps:
    • Create an account and log in to Heroku
    • Go to the dashboard, click New, then Create new app
    • Navigate to Settings
    • Go to Config Vars, click Reveal Config Vars, and add the KEY, and the VALUE for Database, Cloudinary and Secret Key. Click add
    • Go to VS Code project settings and allow Heroku as a host (ALLOWED_HOSTS = ['app-name.herokuapp.com', 'localhost'])
    • Navigate to the Deploy tab at the top
    • Click GitHub, then Connect to GitHub
    • Search for the repository you want to deploy and click connect
    • Select Enable Automatic Deploys or Deploy Branch

Link to deployed project

How to clone the repository

  • Go to the https://github.com/Magda-R-bit/Wild-Wellness reposotory on GitHub
  • Click on the Code button located above the project files
  • Select HTTPS and copy the repository link
  • Open your work environment, type git clone and paste the copied Git URL and press Enter
  • The project is now created as a local clone

How to Fork the repository

  • Log into GitHub and click on repository to download (Wild-Wellness)
  • Click the Fork button in the top right-hand corner
  • Click Create Fork
  • The repository is now in your chosen account and can be cloned or changed

Credits

  • Special Thanks:
    • Spencer Barriball- For your mentorship. Your insights and advices were crucial to the success of this project
  • ChatGPT-4 - For creating Cabins description and debugging
  • Slack Community - For helping me solving issues with settings

Inspiration

Media

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors