feat: Enhance dashboard with stats cards and task filtering

- Added stats cards to display active, completed, overdue, and due-today tasks on the dashboard.
- Implemented search functionality to filter tasks in real-time based on user input.
- Introduced quick-pick date buttons for easier task date selection.
- Updated task rendering logic to handle empty states for task lists.
- Improved overall user interface with new CSS styles for stat cards and buttons.

chore: Update environment variables and backend error handling

- Fixed formatting in the .env file for consistency.
- Enhanced error handling in the backend API for better debugging.

feat: Revamp frontend pages with new features and pricing sections

- Redesigned the index.html page to include a hero section and feature highlights.
- Created a new features page with dynamic loading of features from JSON.
- Implemented a pricing page that loads plans from JSON and highlights the featured plan.
- Added support and FAQ sections with dynamic content loading and contact form functionality.
- Introduced JSON files for FAQs, features, and pricing to allow easy updates without code changes.
This commit is contained in:
Tim Basten
2026-04-23 16:29:52 +08:00
parent e50a6c91e6
commit 63070fd90c
15 changed files with 743 additions and 71 deletions

View File

@@ -45,21 +45,48 @@
</div>
</nav>
<!-- ↓ Page not ready ↓ -->
<section class="bg-img d-flex justify-content-center align-items-center support py-5">
<div class="container text-center text-white py-5">
<img src="./images/Construction.svg" alt="Under Construction" height="150px" width="auto" />
<section class="bg-img py-5">
<div class="container py-5">
<div class="text-center text-white mb-5">
<h1 class="display-3">How can we help?</h1>
<p class="lead text-white-50">Check the FAQ below, or send us a message directly.</p>
</div>
<h2 class="mt-5">Page under construction. Check back later!</h2>
<div class="row g-4">
<div class="col-12 col-lg-6">
<div class="rounded shadow bg-translucent p-4 text-white h-100">
<h2 class="h4 mb-4">Frequently asked questions</h2>
<div class="accordion" id="faqContainer">
<p class="text-white-50">Loading FAQs…</p>
</div>
</div>
</div>
<div class="mt-5">
<a href="./index.html" class="btn btn-primary px-4">Go Home</a>
<div class="col-12 col-lg-6">
<div class="rounded shadow bg-translucent p-4 text-white h-100">
<h2 class="h4 mb-4">Contact us</h2>
<div id="contactStatus" class="alert d-none" role="alert"></div>
<form id="contactForm">
<input name="name" type="text" class="form-control mb-3 shadow-sm" placeholder="Your name" required>
<input name="email" type="email" class="form-control mb-3 shadow-sm" placeholder="Your email" required>
<textarea name="message" rows="5" class="form-control mb-3 shadow-sm" placeholder="How can we help?" required></textarea>
<button type="submit" class="btn btn-primary px-4">Send message</button>
</form>
<hr class="border-light my-4">
<div class="d-flex align-items-center mb-2">
<img src="./images/Email.svg" alt="" height="20" class="me-2">
<span>support@bucketlisk.example</span>
</div>
<div class="d-flex align-items-center">
<img src="./images/Phone.svg" alt="" height="20" class="me-2">
<span>+61 8 0000 0000</span>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- ↑ Page not ready ↑ -->
<!-- ↓ Footer ↓ -->
<footer>
<div class="py-5 container">
<div class="d-flex justify-content-between flex-column gap-5 gap-md-0 flex-md-row align-items-center px-3 mb-5">
@@ -90,6 +117,7 @@
</div>
</footer>
<script src="./js/support.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js"
integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI"
crossorigin="anonymous"></script>