fittrack / index.html
sackxo's picture
create an app: I am looking for something similar to WODIFY. Don’t need all the features Wodify has. I would want it to have a calendar where you click on a day and are able to see the workout and track it.
c7ec257 verified
Raw
History Blame Contribute Delete
22.9 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FitTrack - Workout Tracker</title>
<link rel="icon" type="image/x-icon" href="/static/favicon.ico">
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
<script src="https://unpkg.com/feather-icons"></script>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/fullcalendar@5.11.3/main.min.css">
<script src="https://cdn.jsdelivr.net/npm/fullcalendar@5.11.3/main.min.js"></script>
<style>
.fc-day:hover {
background-color: #f3f4f6;
cursor: pointer;
}
.workout-modal {
transition: all 0.3s ease;
}
</style>
</head>
<body class="bg-gray-50">
<!-- Navbar -->
<nav class="bg-indigo-600 text-white shadow-lg">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between h-16 items-center">
<div class="flex items-center">
<i data-feather="activity" class="mr-2"></i>
<span class="text-xl font-bold">FitTrack</span>
</div>
<div class="hidden md:flex space-x-8">
<a href="#" class="hover:text-indigo-200">Home</a>
<a href="#calendar" class="hover:text-indigo-200">Calendar</a>
<a href="#merch" class="hover:text-indigo-200">Merch</a>
<a href="#pricing" class="hover:text-indigo-200">Pricing</a>
</div>
<div class="md:hidden">
<button id="mobile-menu-button" class="p-2">
<i data-feather="menu"></i>
</button>
</div>
</div>
</div>
<!-- Mobile menu -->
<div id="mobile-menu" class="hidden md:hidden bg-indigo-700 px-2 pt-2 pb-3 space-y-1">
<a href="#" class="block px-3 py-2 rounded-md text-base font-medium hover:bg-indigo-600">Home</a>
<a href="#calendar" class="block px-3 py-2 rounded-md text-base font-medium hover:bg-indigo-600">Calendar</a>
<a href="#merch" class="block px-3 py-2 rounded-md text-base font-medium hover:bg-indigo-600">Merch</a>
<a href="#pricing" class="block px-3 py-2 rounded-md text-base font-medium hover:bg-indigo-600">Pricing</a>
</div>
</nav>
<!-- Hero Section -->
<section class="bg-gradient-to-r from-indigo-500 to-purple-600 text-white py-20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 text-center">
<h1 class="text-4xl md:text-5xl font-bold mb-6" data-aos="fade-up">Track Your Workouts Like A Pro</h1>
<p class="text-xl mb-8 max-w-3xl mx-auto" data-aos="fade-up" data-aos-delay="100">
Schedule, track, and analyze your workouts with our intuitive fitness calendar.
</p>
<div class="flex justify-center space-x-4" data-aos="fade-up" data-aos-delay="200">
<a href="#calendar" class="bg-white text-indigo-600 px-6 py-3 rounded-lg font-medium hover:bg-gray-100 transition duration-300">
View Calendar
</a>
<a href="#pricing" class="bg-transparent border-2 border-white px-6 py-3 rounded-lg font-medium hover:bg-white hover:text-indigo-600 transition duration-300">
Get Started
</a>
</div>
</div>
</section>
<!-- Calendar Section -->
<section id="calendar" class="py-16 bg-white">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<h2 class="text-3xl font-bold text-center mb-12 text-gray-800">Workout Calendar</h2>
<div class="bg-white rounded-xl shadow-lg p-4 md:p-6" data-aos="fade-up">
<div id="calendar-container"></div>
</div>
</div>
</section>
<!-- Workout Modal -->
<div id="workout-modal" class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center hidden z-50 workout-modal">
<div class="bg-white rounded-lg p-6 max-w-md w-full mx-4" data-aos="zoom-in">
<div class="flex justify-between items-center mb-4">
<h3 class="text-xl font-bold text-gray-800" id="workout-date">Workout for May 15</h3>
<button id="close-modal" class="text-gray-500 hover:text-gray-700">
<i data-feather="x"></i>
</button>
</div>
<div class="mb-6">
<h4 class="text-lg font-semibold mb-2">Today's Workout:</h4>
<p id="workout-details" class="text-gray-700">5 rounds for time: 10 pull-ups, 20 push-ups, 30 squats</p>
</div>
<div class="mb-6">
<h4 class="text-lg font-semibold mb-2">Track Your Results:</h4>
<textarea class="w-full border rounded-lg p-3 focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500" rows="3" placeholder="Enter your time, reps, or notes..."></textarea>
</div>
<div class="flex justify-end space-x-3">
<button class="px-4 py-2 bg-gray-200 text-gray-800 rounded-lg hover:bg-gray-300">Save</button>
<button class="px-4 py-2 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700">Share</button>
</div>
</div>
</div>
<!-- Merch Section -->
<section id="merch" class="py-16 bg-gray-50">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<h2 class="text-3xl font-bold text-center mb-12 text-gray-800">Our Merchandise</h2>
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<!-- Product 1 -->
<div class="bg-white rounded-xl shadow-md overflow-hidden" data-aos="fade-up">
<img src="http://static.photos/sport/640x360/1" alt="FitTrack T-Shirt" class="w-full h-64 object-cover">
<div class="p-6">
<h3 class="text-xl font-semibold mb-2">FitTrack T-Shirt</h3>
<p class="text-gray-600 mb-4">High-quality cotton tee with our logo</p>
<div class="flex justify-between items-center">
<span class="text-lg font-bold">$29.99</span>
<button class="px-4 py-2 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700">Add to Cart</button>
</div>
</div>
</div>
<!-- Product 2 -->
<div class="bg-white rounded-xl shadow-md overflow-hidden" data-aos="fade-up" data-aos-delay="100">
<img src="http://static.photos/sport/640x360/2" alt="Performance Tank" class="w-full h-64 object-cover">
<div class="p-6">
<h3 class="text-xl font-semibold mb-2">Performance Tank</h3>
<p class="text-gray-600 mb-4">Breathable fabric for intense workouts</p>
<div class="flex justify-between items-center">
<span class="text-lg font-bold">$34.99</span>
<button class="px-4 py-2 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700">Add to Cart</button>
</div>
</div>
</div>
<!-- Product 3 -->
<div class="bg-white rounded-xl shadow-md overflow-hidden" data-aos="fade-up" data-aos-delay="200">
<img src="http://static.photos/sport/640x360/3" alt="Gym Hoodie" class="w-full h-64 object-cover">
<div class="p-6">
<h3 class="text-xl font-semibold mb-2">Gym Hoodie</h3>
<p class="text-gray-600 mb-4">Stay warm during warm-ups and cool-downs</p>
<div class="flex justify-between items-center">
<span class="text-lg font-bold">$49.99</span>
<button class="px-4 py-2 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700">Add to Cart</button>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Pricing Section -->
<section id="pricing" class="py-16 bg-white">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<h2 class="text-3xl font-bold text-center mb-12 text-gray-800">Simple Pricing</h2>
<div class="grid grid-cols-1 md:grid-cols-3 gap-8">
<!-- Basic Plan -->
<div class="bg-gray-50 rounded-xl shadow-md overflow-hidden" data-aos="fade-up">
<div class="p-6 border-b border-gray-200">
<h3 class="text-xl font-semibold mb-2">Basic</h3>
<p class="text-gray-600">For casual fitness enthusiasts</p>
</div>
<div class="p-6">
<div class="mb-6">
<span class="text-4xl font-bold">$9.99</span>
<span class="text-gray-600">/month</span>
</div>
<ul class="space-y-3 mb-8">
<li class="flex items-center">
<i data-feather="check" class="text-green-500 mr-2"></i>
<span>Workout Calendar</span>
</li>
<li class="flex items-center">
<i data-feather="check" class="text-green-500 mr-2"></i>
<span>Basic Tracking</span>
</li>
<li class="flex items-center">
<i data-feather="x" class="text-red-500 mr-2"></i>
<span class="text-gray-400">Advanced Analytics</span>
</li>
<li class="flex items-center">
<i data-feather="x" class="text-red-500 mr-2"></i>
<span class="text-gray-400">Coach Access</span>
</li>
</ul>
<button class="w-full px-4 py-3 bg-gray-200 text-gray-800 rounded-lg hover:bg-gray-300">Get Started</button>
</div>
</div>
<!-- Pro Plan -->
<div class="bg-indigo-600 text-white rounded-xl shadow-lg overflow-hidden transform scale-105" data-aos="fade-up" data-aos-delay="100">
<div class="p-6 border-b border-indigo-500">
<h3 class="text-xl font-semibold mb-2">Pro</h3>
<p>For serious athletes</p>
</div>
<div class="p-6">
<div class="mb-6">
<span class="text-4xl font-bold">$19.99</span>
<span>/month</span>
</div>
<ul class="space-y-3 mb-8">
<li class="flex items-center">
<i data-feather="check" class="text-green-300 mr-2"></i>
<span>Workout Calendar</span>
</li>
<li class="flex items-center">
<i data-feather="check" class="text-green-300 mr-2"></i>
<span>Advanced Tracking</span>
</li>
<li class="flex items-center">
<i data-feather="check" class="text-green-300 mr-2"></i>
<span>Performance Analytics</span>
</li>
<li class="flex items-center">
<i data-feather="check" class="text-green-300 mr-2"></i>
<span>Coach Access</span>
</li>
</ul>
<button class="w-full px-4 py-3 bg-white text-indigo-600 rounded-lg hover:bg-gray-100 font-medium">Get Started</button>
</div>
</div>
<!-- Premium Plan -->
<div class="bg-gray-50 rounded-xl shadow-md overflow-hidden" data-aos="fade-up" data-aos-delay="200">
<div class="p-6 border-b border-gray-200">
<h3 class="text-xl font-semibold mb-2">Premium</h3>
<p class="text-gray-600">For gyms and teams</p>
</div>
<div class="p-6">
<div class="mb-6">
<span class="text-4xl font-bold">$49.99</span>
<span class="text-gray-600">/month</span>
</div>
<ul class="space-y-3 mb-8">
<li class="flex items-center">
<i data-feather="check" class="text-green-500 mr-2"></i>
<span>Unlimited Members</span>
</li>
<li class="flex items-center">
<i data-feather="check" class="text-green-500 mr-2"></i>
<span>Team Management</span>
</li>
<li class="flex items-center">
<i data-feather="check" class="text-green-500 mr-2"></i>
<span>Advanced Analytics</span>
</li>
<li class="flex items-center">
<i data-feather="check" class="text-green-500 mr-2"></i>
<span>Priority Support</span>
</li>
</ul>
<button class="w-full px-4 py-3 bg-gray-200 text-gray-800 rounded-lg hover:bg-gray-300">Contact Us</button>
</div>
</div>
</div>
</div>
</section>
<!-- Payment Modal -->
<div id="payment-modal" class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center hidden z-50">
<div class="bg-white rounded-lg p-6 max-w-md w-full mx-4" data-aos="zoom-in">
<div class="flex justify-between items-center mb-4">
<h3 class="text-xl font-bold text-gray-800">Complete Payment</h3>
<button id="close-payment-modal" class="text-gray-500 hover:text-gray-700">
<i data-feather="x"></i>
</button>
</div>
<div class="mb-6">
<div class="mb-4">
<label class="block text-gray-700 mb-2">Card Number</label>
<input type="text" class="w-full border rounded-lg p-3 focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500" placeholder="1234 5678 9012 3456">
</div>
<div class="grid grid-cols-2 gap-4 mb-4">
<div>
<label class="block text-gray-700 mb-2">Expiry Date</label>
<input type="text" class="w-full border rounded-lg p-3 focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500" placeholder="MM/YY">
</div>
<div>
<label class="block text-gray-700 mb-2">CVC</label>
<input type="text" class="w-full border rounded-lg p-3 focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500" placeholder="123">
</div>
</div>
<div class="mb-4">
<label class="block text-gray-700 mb-2">Name on Card</label>
<input type="text" class="w-full border rounded-lg p-3 focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500" placeholder="John Doe">
</div>
</div>
<button class="w-full px-4 py-3 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 font-medium">Pay $19.99</button>
</div>
</div>
<!-- Footer -->
<footer class="bg-gray-800 text-white py-12">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="grid grid-cols-1 md:grid-cols-4 gap-8">
<div>
<h3 class="text-lg font-semibold mb-4">FitTrack</h3>
<p class="text-gray-400">Helping you achieve your fitness goals one workout at a time.</p>
</div>
<div>
<h3 class="text-lg font-semibold mb-4">Quick Links</h3>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-white">Home</a></li>
<li><a href="#calendar" class="text-gray-400 hover:text-white">Calendar</a></li>
<li><a href="#merch" class="text-gray-400 hover:text-white">Merch</a></li>
<li><a href="#pricing" class="text-gray-400 hover:text-white">Pricing</a></li>
</ul>
</div>
<div>
<h3 class="text-lg font-semibold mb-4">Support</h3>
<ul class="space-y-2">
<li><a href="#" class="text-gray-400 hover:text-white">Contact Us</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">FAQs</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Privacy Policy</a></li>
<li><a href="#" class="text-gray-400 hover:text-white">Terms of Service</a></li>
</ul>
</div>
<div>
<h3 class="text-lg font-semibold mb-4">Connect</h3>
<div class="flex space-x-4">
<a href="#" class="text-gray-400 hover:text-white"><i data-feather="facebook"></i></a>
<a href="#" class="text-gray-400 hover:text-white"><i data-feather="instagram"></i></a>
<a href="#" class="text-gray-400 hover:text-white"><i data-feather="twitter"></i></a>
<a href="#" class="text-gray-400 hover:text-white"><i data-feather="youtube"></i></a>
</div>
</div>
</div>
<div class="border-t border-gray-700 mt-8 pt-8 text-center text-gray-400">
<p>&copy; 2023 FitTrack. All rights reserved.</p>
</div>
</div>
</footer>
<script>
document.addEventListener('DOMContentLoaded', function() {
// Initialize AOS
AOS.init({
duration: 800,
easing: 'ease-in-out',
once: true
});
// Initialize Feather Icons
feather.replace();
// Mobile menu toggle
const mobileMenuButton = document.getElementById('mobile-menu-button');
const mobileMenu = document.getElementById('mobile-menu');
mobileMenuButton.addEventListener('click', function() {
mobileMenu.classList.toggle('hidden');
});
// Calendar initialization
const calendarEl = document.getElementById('calendar-container');
const calendar = new FullCalendar.Calendar(calendarEl, {
initialView: 'dayGridMonth',
headerToolbar: {
left: 'prev,next today',
center: 'title',
right: 'dayGridMonth,timeGridWeek,timeGridDay'
},
events: [
{
title: 'CrossFit WOD',
start: new Date(),
backgroundColor: '#4f46e5',
borderColor: '#4f46e5'
},
{
title: 'Strength Training',
start: new Date(new Date().setDate(new Date().getDate() + 2)),
backgroundColor: '#7c3aed',
borderColor: '#7c3aed'
},
{
title: 'Endurance Workout',
start: new Date(new Date().setDate(new Date().getDate() + 5)),
backgroundColor: '#9333ea',
borderColor: '#9333ea'
}
],
dateClick: function(info) {
const modal = document.getElementById('workout-modal');
const dateElement = document.getElementById('workout-date');
// Format the date
const options = { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' };
const formattedDate = info.date.toLocaleDateString('en-US', options);
dateElement.textContent = `Workout for ${formattedDate}`;
modal.classList.remove('hidden');
}
});
calendar.render();
// Close workout modal
const closeModal = document.getElementById('close-modal');
const workoutModal = document.getElementById('workout-modal');
closeModal.addEventListener('click', function() {
workoutModal.classList.add('hidden');
});
// Close payment modal
const closePaymentModal = document.getElementById('close-payment-modal');
const paymentModal = document.getElementById('payment-modal');
if (closePaymentModal) {
closePaymentModal.addEventListener('click', function() {
paymentModal.classList.add('hidden');
});
}
// Show payment modal when clicking Pro plan button
const proPlanButton = document.querySelector('.bg-white.text-indigo-600');
if (proPlanButton) {
proPlanButton.addEventListener('click', function(e) {
e.preventDefault();
paymentModal.classList.remove('hidden');
});
}
});
</script>
</body>
</html>