122 lines
4.8 KiB
HTML
122 lines
4.8 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Gamified Fitness Tracker</title>
|
|
<link rel="stylesheet" href="style.css">
|
|
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;600;700&display=swap" rel="stylesheet">
|
|
</head>
|
|
<body>
|
|
<nav class="nav">
|
|
<a href="#" class="nav-link active" data-tab="dashboard">Dashboard</a>
|
|
<a href="#" class="nav-link" data-tab="log">Log Workout</a>
|
|
<a href="#" class="nav-link" data-tab="quests">Quests</a>
|
|
<a href="#" class="nav-link" data-tab="achievements">Achievements</a>
|
|
<a href="#" class="nav-link" data-tab="history">History</a>
|
|
</nav>
|
|
|
|
<main id="app">
|
|
<!-- Dashboard Page -->
|
|
<div id="dashboard" class="page active">
|
|
<div class="header">
|
|
<h1 id="profile-name">Welcome, User!</h1>
|
|
<button id="edit-name-btn">Edit</button>
|
|
</div>
|
|
|
|
<div class="grid-container">
|
|
<div class="card">
|
|
<h2>XP & Level</h2>
|
|
<p>Level: <span id="level">1</span></p>
|
|
<div class="xp-bar-container">
|
|
<div class="xp-bar" id="xp-bar" style="width: 50%;"></div>
|
|
</div>
|
|
<p><span id="xp">50</span> / 100 XP</p>
|
|
</div>
|
|
<div class="card">
|
|
<h2>Rank</h2>
|
|
<p id="rank">Beginner</p>
|
|
<p><span id="rank-points">0</span> Points</p>
|
|
</div>
|
|
<div class="card">
|
|
<h2>Streak</h2>
|
|
<p><span id="streak">0</span> Days</p>
|
|
</div>
|
|
<div class="card full-width">
|
|
<h2>Monthly Streak</h2>
|
|
<div id="streak-calendar" class="calendar-grid"></div>
|
|
</div>
|
|
<div class="card">
|
|
<h2>Total Distance</h2>
|
|
<p><span id="total-distance">0</span> km</p>
|
|
</div>
|
|
<div class="card">
|
|
<h2>Total Push-ups</h2>
|
|
<p><span id="total-pushups">0</span></p>
|
|
</div>
|
|
<div class="card">
|
|
<h2>Total Sit-ups</h2>
|
|
<p><span id="total-situps">0</span></p>
|
|
</div>
|
|
<div class="card">
|
|
<h2>Total Squats</h2>
|
|
<p><span id="total-squats">0</span></p>
|
|
</div>
|
|
<div class="card">
|
|
<h2>Total Pull-ups</h2>
|
|
<p><span id="total-pullups">0</span></p>
|
|
</div>
|
|
<div class="card">
|
|
<h2>Other Workouts</h2>
|
|
<p><span id="total-other">0</span></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Log Workout Page -->
|
|
<div id="log" class="page">
|
|
<h1>Log a Workout</h1>
|
|
<form id="log-form">
|
|
<select id="workout-type" required>
|
|
<option value="running">Running</option>
|
|
<option value="pushups">Push-ups</option>
|
|
<option value="situps">Sit-ups</option>
|
|
<option value="squats">Squats</option>
|
|
<option value="pullups">Pull-ups</option>
|
|
<option value="other">Other</option>
|
|
</select>
|
|
<input type="number" id="workout-amount" placeholder="Kilometers or Reps" required>
|
|
<input type="date" id="workout-date" required>
|
|
<button type="submit">Log Workout</button>
|
|
</form>
|
|
</div>
|
|
|
|
<!-- Quests Page -->
|
|
<div id="quests" class="page">
|
|
<h1>Quests</h1>
|
|
<div id="quests-container" class="grid-container"></div>
|
|
</div>
|
|
|
|
<!-- Achievements Page -->
|
|
<div id="achievements" class="page">
|
|
<h1>Achievements</h1>
|
|
<div id="achievements-container" class="grid-container"></div>
|
|
</div>
|
|
|
|
<!-- History Page -->
|
|
<div id="history" class="page">
|
|
<h1>Workout History</h1>
|
|
<button id="toggle-history">Show Workout History</button>
|
|
<div id="history-container" style="display: none;"></div>
|
|
<div class="settings-container">
|
|
<h2>Settings</h2>
|
|
<button id="export-data">Export Data</button>
|
|
<button id="import-data">Import Data</button>
|
|
<input type="file" id="import-file" style="display: none;" accept=".json">
|
|
<button id="reset-data">Reset All Data</button>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
<script src="script.js"></script>
|
|
</body>
|
|
</html> |