django-website-profile / templates / index.html
index.html
Raw
{% load static %}
<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="profile">
    <meta name="author" content="Joshua Panettieri">
    <title>JPanettieri</title>
    <link rel="icon" type="image/x-icon" href="media/Flavicon.ico">
    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
    
     
    <!-- Custom styles for this template -->
    <link rel="stylesheet" type="text/css" href=" {% static '/css/site.css' %} ">
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
  </head>

<body>
  <header class="site-header sticky-top" style="margin: 5px;">
      <nav id="navbar" class="my-navbar navbar-light px-3" style="border-radius: 10px;">
          <a id="index-brand" class="my-navbar-brand" href="#" style="color:#fff;">
            Ideas to Applications - My Portfolio
            </a>
          <ul class="nav nav-pills">
            <li class="nav-item">
              <a id="nav-about" class="nav-links" href="#scrollspyAboutMe">About Me</a>
            </li>
            <li class="nav-item">
              <a id="nav-projects" class="nav-links" href="#scrollspyProjects">Projects</a>
            </li>
            <li class="nav-item">
              <a id="nav-skills" class="nav-links" href="#scrollspySkills">Skills</a>
            </li>
            <li class="nav-item">
              <a id="nav-connect" class="nav-links" href="#scrollspyContactMe">Let's Connect</a>
            </li>
          </ul>
      </nav>
      <div data-bs-spy="scroll" data-bs-target="#navbar" data-bs-offset="0" class="scrollspy" tabindex="0">
  </header>

  <main>

      {% comment %} About me section {% endcomment %}
        <h4 id="scrollspyAboutMe"></h4>
        <div id="leaves" class="position-relative overflow-hidden pt-4 p-2 p-md-4 m-md-2 text-center bg-light" style="top: 5%;">
            <div class="col-md-8 p-lg-5 mx-auto my-5">
              <h1 id="about-title" class="hidden display-4 fw-normal">From Code to Crops: <br> The Story of Joshua Panettieri.</h1>
              <p id="about-body" class="hidden lead fw-normal">A jack-of-all-trades with a green thumb and a tech savvy mind, I bring my unique blend of skills to the agriculture and tech world. 
                When I'm not coding up a storm or tending to my crops, you can find me bonding with my family and spreading the gospel of regenerative agriculture. 
                Let's just say, I'm the ultimate farm-to-table enthusiast, but with a side of geek. 
                Join me in my mission to make the world a healthier and happier place, one seed at a time.</p>
              <a class="btn-outline-cdark" href="https://www.linkedin.com/in/joshua-panettieri/" target="_blank">Linkedin</a>
              <a class="btn-outline-cdark" href="https://github.com/JPanettieri" target="_blank">GitHub</a>
            </div>
        </div>

  {% comment %} Projects Section {% endcomment %}
          <h4 id="scrollspyProjects"></h4>
          <div class="position-relative overflow-hidden pt-4 p-2 p-md-4 m-md-2 text-center bg-light">
          <div class="col-md-12 p-lg-5 mx-auto my-5">
            <h1 id="about-title" class="hidden display-4 fw-normal">Projects</h1>
            <a class="btn-outline-cdark" target="_blank" href="https://gitfront.io/r/user-2387435/uK5cbmzJQkWd/myWebsite/">Take a peek at this Websites code on Github</a>
             <div class="d-md-flex flex-md-equal w-100 h-600 my-md-3 ps-md-3">
              <div id="project1" class="me-md-3 pt-3 pb-3 px-3 pt-md-5 px-md-5 overflow-hidden">
                <div id="p1-container" class="hidden my-3 py-3">
                  {% for i in project1 %}
                  <div class="project-grid-long">
                  <h2 id="project-title" class="display-5">{{i.name}}</h2>
                  <p id="project-description" class="lead">{{i.description}}</p>
                  <a id="project-demo-button" class="btn-outline-clight" href="{{i.demo}}" target="_blank">Demo</a>
                  <a id="project-code-button" class="btn-outline-clight" href="{{i.code}}" target="_blank">Source Code</a>
                    <img id="project-img-long" src="media/{{i.image}}" class="figure-img img-fluid rounded" alt="Project 2">
                    <img id="project-tech-long" src="media/{{i.tech}}" class="pulse figure-img img-fluid rounded" alt="Project 2" >
                  </div>
                </div>
                {% endfor %}
              </div>
              <div id="project2" class="me-md-3 pt-3 pb-3 px-3 pt-md-5 px-md-5 overflow-hidden">
                <div id="p2-container" class="hidden my-3 py-3">
                  {% for i in project2 %}
                  <div class="project-grid-wide">
                  <h2 id="project-title" class="display-5">{{i.name}}</h2>
                  <p id="project-description" class="lead">{{i.description}}</p>
                  <a id="project-demo-button" class="btn-outline-cdark" href="{{i.demo}}" target="_blank">Demo</a>
                  <a id="project-code-button" class="btn-outline-cdark" href="{{i.code}}" target="_blank">Source Code</a>
                    <img id="project-img" src="media/{{i.image}}" class="figure-img img-fluid rounded" alt="Project 2">
                    <img id="project-tech" src="media/{{i.tech}}" class="pulse figure-img img-fluid rounded" alt="Project 2" >
                  </div>
                </div>
                {% endfor %}
              </div>
            </div>
            <div class="d-md-flex flex-md-equal w-100 my-md-3 ps-md-3">
              <div id="project3" class="me-md-3 pt-3 pb-3 px-3 pt-md-5 px-md-5 overflow-hidden">
                <div id="p3-container" class="hidden my-3 py-3">
                  {% for i in project3 %}
                  <div class="project-grid-wide">
                  <h2 id="project-title" class="display-5">{{i.name}}</h2>
                  <p id="project-description" class="blur lead">{{i.description}}</p>
{% comment %}
                  <a id="project-demo-button" class="blur btn-outline-cdark" href="{{i.demo}}" target="_blank">Demo</a>
                  <a id="project-code-button" class="blur btn-outline-cdark" href="{{i.code}}" target="_blank">Source Code</a>
                    <img id="project-img" src="media/{{i.image}}" class=" blur figure-img img-fluid rounded" alt="Project 3">
                    <img id="project-tech" src="media/{{i.tech}}" class="blur pulse figure-img img-fluid rounded" alt="Project 3" >
{% endcomment %}
                  </div>
                </div>
                {% endfor %}
              </div>
              <div id="project4" class="me-md-3 pt-3 pb-3 px-3 pt-md-5 px-md-5 overflow-hidden">
                  <div id="p4-container" class="hidden my-3 py-3">
                    {% for i in project4 %}
                    <div class="project-grid-wide">
                    <h2 id="project-title" class="display-5">{{i.name}}</h2>
                    <p id="project-description" class="blur lead">{{i.description}}</p>
{% comment %}
                    <a id="project-demo-button" class="blur btn-outline-clight" href="{{i.demo}}" target="_blank">Demo</a>
                    <a id="project-code-button" class="blur btn-outline-clight" href="{{i.code}}" target="_blank">Source Code</a>
                      <img id="project-img" src="media/{{i.image}}" class="blur figure-img img-fluid rounded" alt="Project 4" >
                      <img id="project-tech" src="media/{{i.tech}}" class="blur pulse figure-img img-fluid rounded" alt="Project 4" >
{% endcomment %}
                    </div>
                  </div>
                  {% endfor %}
                </div>
            </div> 
          </div>
        </div>

          {% comment %} skills image {% endcomment %}
          <h4 id="scrollspySkills"></h4>
      <div class="position-relative overflow-hidden pt-4 p-2 p-md-4 m-md-2 text-center bg-light">
        <div class="col-md-12 p-lg-5 mx-auto my-5">
          <div class="skill-grid">
            <h1 id="skill-title" class="hidden"> Skills</h1>
              <div id="skill-tech-left"class="tech-grid">
                <p id="tech-frontend" class="hidden display-5">Frontend</p>
                <img id="tech1" class="tech-img" src="media/bootstrap.png" alt="bootstrap" >
                <img id="tech2" class="tech-img" src="media/xml.png" alt="xml" >
                <img id="tech3" class="tech-img" src="media/css.png" alt="css" >
                <img id="tech4" class="tech-img" src="media/html.png" alt="html" >
                <img id="tech5" class="tech-img" src="media/kotlin.png" alt="kotlin" >
                <img id="tech6" class="tech-img" src="media/asp-net.png" alt="asp.net">
              </div>
            <img id="skill-tree" src="media/naturalTree.png" alt="Tree of Skill">
              <div id="skill-tech-right" class="tech-grid">
                <p id="tech-backend" class="hidden display-5">Backend</p>
                <img id="tech1" class="tech-img" src="media/JS.png" alt="js" >
                <img id="tech2" class="tech-img" src="media/python.png" alt="python" >
                <img id="tech3" class="tech-img" src="media/MSSQL.png" alt="mssql" >
                <img id="tech4" class="tech-img" src="media/c-sharp.png" alt="csharp" >
                <img id="tech5" class="tech-img" src="media/django.png" alt="django" >
                <img id="tech6" class="tech-img" src="media/docker.png" alt="docker" >
              </div>
            <p id="skill-quote" class="hidden">
              "Much like a tree that grows, expanding and branching out with each passing day, so too are my skills" 
            </p>
          </div>
        </div>
      </div>

          <h4 id="scrollspyContactMe"></h4>
          <div class="position-relative overflow-hidden pt-4 p-2 p-md-4 m-md-2 text-center bg-light">
            <div class="col-md-6 p-lg-5 mx-auto my-5">
              <div class="bg-gdark rb10 p-3 text-center text-white text-black overflow-hidden">
                <h3 id="contact-title" class="hidden display-5">Let's Connect!</h3>
              <button id="contactMeBtn" class="btn-outline-cdark">I want to contact you</button>
              <button id="contactYouBtn" class="btn-outline-cdark">I want you to contact me</button>
              </div>
              <br>
                <form id="contactYou" class="contact position-relative overflow-hidden pt-2 p-2 text-center text-white" method="post">{% csrf_token %}
                  <div class="form-group" >
                    <h3 class="display-5">I'll Contact You</h3>
                    <label for="fname">Name:</label>
                    <input name='cname' type="text" class="form-control" id="fname" required>
                    <label for="femail">Email:</label>
                    <input name='cemail'type="email" class="form-control" id="femail" required>
                    <label for="fphone">Phone:</label>
                    <input name='cphone'type="text" class="form-control" id="fphone" required>
                    <label  for="fmessage">Message:</label>
                    <textarea name='cmessage' class="form-control" id="fmessage" rows="5" required></textarea>
                  <button type="submit" class="btn-outline-cdark" value="Submit">Submit</button>
                </div>
                </form>
                <form id="contactMe" class="contact position-relative overflow-hidden pt-2 p-2 text-center text-white" method="post">
                  <ul class="list-group">
                    <h3 class="display-5">Contact Me</h3>
                    <li class="list-group-item">Joshua Panettieri</li>
                    <li class="list-group-item">connect@jpanettieri.dev</li>
                    <li class="list-group-item">https://www.linkedin.com/in/joshua-panettieri/</li>
                    <li class="list-group-item">+61 0430016527</li>
                  </ul>
                </div>
              </div>
            </div>
          </div> 
          {% if show_modal %}
          <script>
            $(document).ready(function(){
              $("#contactFormModal").modal("show");
              show_modal = False
            });
          </script>                
          {% endif %}
          
          <!-- Modal -->
  <div class="modal fade" id="contactFormModal" tabindex="-1" aria-labelledby="contactModal" aria-hidden="true">
    <div class="modal-dialog">
      <div class="modal-content">
        <div class="modal-header">
          <h5 class="modal-title">Contact Sent Successfully</h5>
        </div>
        <div class="modal-body">
          Thank you for contacting me, I will be in touch as soon as posible. 
        </div>
        <div class="modal-footer">
          <button type="button" class="btn-outline-clight" data-bs-dismiss="modal">Close</button>
        </div>
      </div>
    </div>
  </div>
{% comment %} 
  <div id="cookie-popup" class="cookie-popup">
    <div class="cookie-popup-content">
      <p>We use cookies to ensure that we give you the best experience on our website. Please enable cookies in your browser settings to continue using our site.</p>
      <button id="cookie-popup-accept" class="cookie-popup-accept">Enable Cookies</button>
    </div>
  </div>
  
  <script>
    // Get the popup element
    var cookiePopup = document.getElementById("cookie-popup");
  
    // Get the accept button
    var acceptButton = document.getElementById("cookie-popup-accept");
  
    // Add an event listener to the accept button
    acceptButton.addEventListener("click", function() {
      // Set a cookie to indicate that the user has accepted cookies
      document.cookie = "cookies_accepted=true; path=/";
      
      // Hide the popup
      cookiePopup.style.display = "none";
    });
  
    // Show the popup if the user hasn't accepted cookies yet
    if (document.cookie.indexOf("cookies_accepted=true") == -1) {
      cookiePopup.style.display = "block";
    }
  </script> {% endcomment %}
  

  <footer>
    <div class="footer-left">
      <img src="media/Brand.png" alt="Brand logo">
      <p>&copy; 2023 JPanetieri</p>
    </div>
    <div class="footer-right">
      <a href="https://github.com" target="_blank"><img src="media/github-white.png" alt="GitHub"></a>
      <a href="https://www.linkedin.com" target="_blank"><img src="media/linkedin-white.png" alt="LinkedIn"></a>
    </div>
  </footer>

        
      <!-- Optional JavaScript; choose one of the two! -->

      <!-- Option 1: Bootstrap Bundle with Popper -->
      <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>

      <!-- Option 2: Separate Popper and Bootstrap JS -->
      <!--
      <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script>
      <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.min.js" integrity="sha384-cVKIPhGWiC2Al4u+LWgxfKTRIcfu0JTxR+EQDz/bgldoEyl4H0zUF0QKbrJ0EcQF" crossorigin="anonymous"></script>
      -->
</body>

</html>

{% comment %} Create the correct amount of I elements for the falling leaves animation {% endcomment %}
<script>
  var x = Math.floor(0.04 * window.innerWidth);
  for (var i = 0; i < x; i++) {
    var node = document.createElement("I");
    var firstChild = document.getElementById("leaves").firstChild;
    document.getElementById("leaves").insertBefore(node, firstChild);
  }
</script>

<script>
  document.getElementById("contactMeBtn").addEventListener("click", function() {
  document.getElementById("contactMe").style.display = "block";
  document.getElementById("contactYou").style.display = "none";
  });

  document.getElementById("contactYouBtn").addEventListener("click", function() {
    document.getElementById("contactYou").style.display = "block";
    document.getElementById("contactMe").style.display = "none";
  });
</script>

<script>
  {% verbatim %}
    const scroll = new IntersectionObserver((entries) => {
      entries.forEach((entry) => {
        if (entry.isIntersecting) {
          entry.target.classList.add('show');
        } else {
          entry.target.classList.remove('show');
        }
      });
    });

    const hiddenElements = document.querySelectorAll('.hidden');
    hiddenElements.forEach((el) => scroll.observe(el));
  {% endverbatim %}
</script>

<script>
  $(window).resize(function() {
    console.log($(window).width());
    if ($(window).width() < 768) {
      $('#p3-container #project-demo-button').removeClass('btn-outline-cdark');
      $('#p3-container #project-demo-button').addClass('btn-outline-clight');
      $('#p3-container #project-code-button').removeClass('btn-outline-cdark');
      $('#p3-container #project-code-button').addClass('btn-outline-clight');
      $('#p4-container #project-demo-button').removeClass('btn-outline-clight');
      $('#p4-container #project-demo-button').addClass('btn-outline-cdark');
      $('#p4-container #project-code-button').removeClass('btn-outline-clight');
      $('#p4-container #project-code-button').addClass('btn-outline-cdark');
    } else {
      $('#p3-container #project-demo-button').removeClass('btn-outline-clight');
      $('#p3-container #project-demo-button').addClass('btn-outline-cdark');
      $('#p3-container #project-code-button').removeClass('btn-outline-clight');
      $('#p3-container #project-code-button').addClass('btn-outline-cdark');
      $('#p4-container #project-demo-button').removeClass('btn-outline-cdark');
      $('#p4-container #project-demo-button').addClass('btn-outline-clight');
      $('#p4-container #project-code-button').removeClass('btn-outline-cdark');
      $('#p4-container #project-code-button').addClass('btn-outline-clight');
    }
  });
</script>