Skip to content

Conversation

@elhalj
Copy link
Owner

@elhalj elhalj commented Dec 13, 2025

Summary

Revamp the marketing landing page to present Tasks API as an open‑source, tech‑focused product with updated sections and metadata.

New Features:

  • Add tech stack, main API endpoints, and roadmap sections to the landing experience using new seed data sources.
  • Introduce an installation and configuration quick-start guide section on the home page.
  • Expose new open-source CTAs for starring and forking the GitHub repository from the landing page.
  • Add roadmap, endpoints, and tech stack seed modules to centralize marketing content.

Enhancements:

  • Redesign the hero, header, pricing, footer, and features sections to emphasize the Tasks API, GitHub repository, and recent MVP completion.
  • Simplify and modernize navigation and footer content to focus on documentation-style sections and project attribution.
  • Expand the features list with more detailed, backend- and performance-oriented capabilities.

Summary by Sourcery

Revamp the marketing landing page to present Tasks API as an open‑source, backend‑focused product with new technical sections and GitHub calls to action.

New Features:

  • Introduce a hero experience focused on the Tasks API, showcasing MVP completion and linking directly to the public GitHub repository.
  • Add dedicated sections for the tech stack and primary API endpoints sourced from new seed modules.
  • Add a roadmap section highlighting upcoming features such as notifications, messaging, and calendar integration.
  • Provide an installation and configuration quick‑start guide directly on the home page.
  • Expose open‑source contribution CTAs for starring and forking the GitHub repository from the landing experience.

Enhancements:

  • Redesign the header, hero, pricing, features, CTA, and footer to emphasize the API, documentation‑style navigation, and project attribution.
  • Expand the feature list with additional backend, security, performance, and infrastructure‑oriented capabilities.
  • Introduce seed data modules for roadmap items, endpoints, and tech stack to centralize and reuse marketing content across the UI.

@elhalj elhalj self-assigned this Dec 13, 2025
@elhalj elhalj added the enhancement New feature or request label Dec 13, 2025
@netlify
Copy link

netlify bot commented Dec 13, 2025

Deploy Preview for colab-flow ready!

Name Link
🔨 Latest commit 80ebab9
🔍 Latest deploy log https://app.netlify.com/projects/colab-flow/deploys/693deaf058497a00081a26f2
😎 Deploy Preview https://deploy-preview-37--colab-flow.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@sourcery-ai
Copy link

sourcery-ai bot commented Dec 13, 2025

Reviewer's Guide

Revamps the landing page into a tech‑focused, OSS‑oriented marketing surface by redesigning hero, header, pricing, features, CTA, and footer, and by introducing new seed data for tech stack, API endpoints, and roadmap plus a quick-start install/config section and GitHub CTAs.

Class diagram for updated landing page components and seed modules

classDiagram

  class LandingPage {
    - boolean isMenuOpen
    - number scrollY
    + useEffect_handleScroll()
    + render()
  }

  class Header {
    + boolean isMenuOpen
    + function setIsMenuOpen(isOpen)
    + number scrollY
    + render()
  }

  class Hero {
    + render()
  }

  class Pricing {
    + render()
  }

  class Feature {
    + render()
  }

  class Cta {
    + render()
  }

  class Footer {
    + render()
  }

  class features_seed {
    + array features
  }

  class techStack_seed {
    + array techStack
  }

  class endpoints_seed {
    + array endpoints
  }

  class roadmapItems_seed {
    + array roadmapItems
  }

  %% Relationships between layout and sections
  LandingPage --> Header : passes_isMenuOpen_setIsMenuOpen_scrollY
  LandingPage --> Hero
  LandingPage --> Feature
  LandingPage --> Pricing
  LandingPage --> Cta
  LandingPage --> Footer

  %% Seed usage
  Feature --> features_seed : uses_features
  Pricing --> techStack_seed : uses_techStack
  Pricing --> endpoints_seed : uses_endpoints
  Hero --> roadmapItems_seed : uses_roadmapItems
Loading

Flow diagram for seed-based marketing content feeding landing sections

flowchart LR

  subgraph Seeds
    A[features_seed]
    B[techStack_seed]
    C[endpoints_seed]
    D[roadmapItems_seed]
  end

  subgraph Sections
    E[Feature_section]
    F[Tech_stack_and_API_endpoints_section]
    G[Roadmap_section]
    H[Pricing_section]
    I[CTA_GitHub_star_fork_section]
    J[Header_Hero_with_GitHub_links]
    K[Footer_attribution]
  end

  subgraph User
    U[Visitor_on_landing_page]
  end

  A --> E
  B --> F
  C --> F
  D --> G

  E --> U
  F --> U
  G --> U
  H --> U
  I --> U
  J --> U
  K --> U
Loading

File-Level Changes

Change Details Files
Redesigned hero section to market the Tasks API as a tech-focused, OSS-friendly product and surface MVP/roadmap context.
  • Replaced previous marketing hero with a full-screen, dark-themed hero highlighting the Tasks API as a RESTful backend product.
  • Added animated background visuals that respond to scroll position via a new scrollY prop/state.
  • Introduced CTA buttons linking to login and directly to the GitHub repository for source code.
  • Added a "Dernières Améliorations" section under the hero to showcase recent MVP (PR Enhance Room/Task API, UI, and Member Management #25) features and improvements.
  • Added a 2025 roadmap section driven by new seed data, with icons and descriptions.
frontend/src/ui/home/Hero.tsx
frontend/src/seeds/roadmapItems.tsx
Extended the pricing section with a tech stack showcase and visualized key API endpoints driven by new seed modules.
  • Refactored pricing layout but kept three plans (Gratuit, Pro, Entreprise) with improved styling and button behaviors.
  • Added a new dark "Tech Stack & API" section below pricing that presents technologies used in a pill layout using techStack seed data.
  • Added an "Endpoints API Principaux" grid that displays authentication and task management endpoints using endpoints seed data.
frontend/src/ui/home/Pricing.tsx
frontend/src/seeds/endpoints.ts
frontend/src/seeds/techtack.ts
Expanded features seed to emphasize backend, performance, and infra capabilities used by the landing page features grid.
  • Kept existing user-facing features but appended several new backend-focused feature entries (auth, collaboration, CRUD, performance, DB, UI).
  • Imported additional icons to support new feature items (Code, Database, CheckCircle) and added optional color metadata on the new entries for richer UI usage.
frontend/src/seeds/features.tsx
Reworked header navigation to a dark, sticky, tech- and docs-oriented nav with OSS and auth CTAs and scroll-reactive styling.
  • Replaced the previous white TaskFlow header with a dark transparent nav bar that blurs and adds shadow based on scrollY.
  • Simplified nav links to focus on documentation-style sections (Fonctionnalités, Technologies, Roadmap).
  • Added prominent CTAs for login and GitHub repository, including GitHub icon and removal of AuthContext-dependent dashboard link.
  • Introduced a responsive mobile menu aligned with the new sections and removed older marketing links (Accueil, Tarifs, Témoignages, Contact).
frontend/src/ui/home/Header.tsx
frontend/src/ui/Landing.tsx
Simplified and OSS-oriented footer plus a new CTA block that highlights GitHub star/fork actions and project attributes.
  • Replaced the multi-column marketing footer with a compact bar showing Tasks API branding, GitHub link, and creator attribution.
  • Added a new CTA section encouraging users to star or fork the GitHub repo, with buttons linking to the repo and its fork URL and small OSS badges (MIT, Node.js 22+, JWT).
frontend/src/ui/home/Footer.tsx
frontend/src/ui/home/Cta.tsx
Augmented the features page with an installation and configuration quick-start guide section.
  • Extended the Feature component to include a "Démarrage Rapide" section below the existing feature grid.
  • Added code-block style cards showing git clone, install, run commands, and required environment variables (PORT, MONGODB_URI, JWT_SECRET).
  • Imported Code and Database icons to visually distinguish installation vs configuration blocks.
frontend/src/ui/home/Feature.tsx

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@elhalj
Copy link
Owner Author

elhalj commented Dec 13, 2025

@sourcery-ai title

@sourcery-ai sourcery-ai bot changed the title add new things Revamp landing page with tech stack, API endpoints, roadmap, and OSS CTAs Dec 13, 2025
Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey there - I've reviewed your changes and found some issues that need to be addressed.

  • In Hero.tsx you reference scrollY for the background transform, but the component neither defines local scroll state nor accepts scrollY as a prop (unlike Header), so this will currently be undefined at runtime; consider wiring the same scrollY from Landing into Hero or handling it internally.
  • The navigation links in Header now point to #features, #tech, and #roadmap, but the main features section still uses the id fonctionnalites, so clicking "Fonctionnalités" will not scroll to the intended section; align the section id and header anchor.
  • In roadmapItems.tsx the icon field stores JSX elements rather than plain data, which makes the seed less reusable and harder to test; you might prefer storing the icon component or a key (e.g. icon: Bell) and instantiating it where the list is rendered.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- In `Hero.tsx` you reference `scrollY` for the background transform, but the component neither defines local scroll state nor accepts `scrollY` as a prop (unlike `Header`), so this will currently be `undefined` at runtime; consider wiring the same `scrollY` from `Landing` into `Hero` or handling it internally.
- The navigation links in `Header` now point to `#features`, `#tech`, and `#roadmap`, but the main features section still uses the id `fonctionnalites`, so clicking "Fonctionnalités" will not scroll to the intended section; align the section id and header anchor.
- In `roadmapItems.tsx` the `icon` field stores JSX elements rather than plain data, which makes the seed less reusable and harder to test; you might prefer storing the icon component or a key (e.g. `icon: Bell`) and instantiating it where the list is rendered.

## Individual Comments

### Comment 1
<location> `frontend/src/ui/home/Hero.tsx:16-17` </location>
<code_context>
-                  </div>
+      {/* Hero Section */}
+      <section className="min-h-screen flex items-center justify-center relative overflow-hidden pt-20">
+        <div
+          className="absolute inset-0 opacity-20"
+          style={{ transform: `translateY(${scrollY * 0.5}px)` }}
+        >
</code_context>

<issue_to_address>
**issue (bug_risk):** The `scrollY` value used for the parallax effect is never defined in `Hero`, which will cause a runtime error.

Here `scrollY` is used in the inline style but isn’t defined in this component (no prop, state, or hook), so it will throw at runtime. Define it locally (e.g., via a scroll hook), pass it in as a prop, or remove the dependency on `scrollY` here.
</issue_to_address>

### Comment 2
<location> `frontend/src/ui/home/Hero.tsx:6-7` </location>
<code_context>
+  CheckCircle,
+  GitBranch,
+  Rocket,
+  ZapIcon,
+} from "lucide-react";
+import { FaGithub } from "react-icons/fa";
+import { roadmapItems } from "../../seeds/roadmapItems";
</code_context>

<issue_to_address>
**issue (bug_risk):** The `ZapIcon` import does not match any Lucide icon and will fail at compile/runtime.

Lucide exports `Zap`, not `ZapIcon`, so this import will break the build. Update the import to `Zap` and use `<Zap />` in the JSX (or rename consistently to match the actual Lucide export).
</issue_to_address>

### Comment 3
<location> `frontend/src/ui/home/Header.tsx:22-25` </location>
<code_context>
-            {/* CTA et Menu Mobile */}
+            
+            {/* Desktop Menu */}
+            <div className="hidden md:flex space-x-8">
+              <a href="#features" className="hover:text-blue-400 transition-colors">Fonctionnalités</a>
+              <a href="#tech" className="hover:text-blue-400 transition-colors">Technologies</a>
+              <a href="#roadmap" className="hover:text-blue-400 transition-colors">Roadmap</a>
+            </div>
+            
</code_context>

<issue_to_address>
**issue (bug_risk):** Header navigation links point to `#features`, but the corresponding section id is still `#fonctionnalites`.

This mismatch currently breaks in-page navigation. Please either rename the section id to `features` or update the header links to keep using `#fonctionnalites`, so they stay consistent.
</issue_to_address>

### Comment 4
<location> `frontend/src/seeds/techtack.ts:1` </location>
<code_context>
new file mode 100644
index 0000000..161a3af
--- /dev/null
+++ b/frontend/src/seeds/techtack.ts
</code_context>

<issue_to_address>
**suggestion (typo):** The filename `techtack.ts` appears to be a typo and could hurt discoverability.

The file name doesn’t match the exported symbol (`techStack`), which could be confusing. Please rename the file to `techStack.ts` and update any imports accordingly.
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment on lines +16 to +17
<div
className="absolute inset-0 opacity-20"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (bug_risk): The scrollY value used for the parallax effect is never defined in Hero, which will cause a runtime error.

Here scrollY is used in the inline style but isn’t defined in this component (no prop, state, or hook), so it will throw at runtime. Define it locally (e.g., via a scroll hook), pass it in as a prop, or remove the dependency on scrollY here.

Comment on lines +6 to +7
ZapIcon,
} from "lucide-react";
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (bug_risk): The ZapIcon import does not match any Lucide icon and will fail at compile/runtime.

Lucide exports Zap, not ZapIcon, so this import will break the build. Update the import to Zap and use <Zap /> in the JSX (or rename consistently to match the actual Lucide export).

@elhalj
Copy link
Owner Author

elhalj commented Dec 13, 2025

@sourcery-ai review

@elhalj
Copy link
Owner Author

elhalj commented Dec 13, 2025

@sourcery-ai title

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey there - I've reviewed your changes and found some issues that need to be addressed.

  • The Hero component references scrollY for the background animation but never receives it as a prop or defines it locally, which will cause a runtime error; either pass scrollY down from LandingPage (as done for Header) or remove the dependency.
  • In the navigation, the header links point to #features while the feature section is still identified by id="fonctionnalites", so those links won’t scroll to the right section; align the href anchors and section id values.
  • The GitHub repository URL https://github.com/elhalj/Tasks_api is hard-coded in several components (Hero, Header, Cta, Footer); consider centralizing it in a single config/constant to avoid duplication and ease future updates.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The `Hero` component references `scrollY` for the background animation but never receives it as a prop or defines it locally, which will cause a runtime error; either pass `scrollY` down from `LandingPage` (as done for `Header`) or remove the dependency.
- In the navigation, the header links point to `#features` while the feature section is still identified by `id="fonctionnalites"`, so those links won’t scroll to the right section; align the `href` anchors and section `id` values.
- The GitHub repository URL `https://github.com/elhalj/Tasks_api` is hard-coded in several components (Hero, Header, Cta, Footer); consider centralizing it in a single config/constant to avoid duplication and ease future updates.

## Individual Comments

### Comment 1
<location> `frontend/src/ui/home/Hero.tsx:17-19` </location>
<code_context>
-                  </div>
+      {/* Hero Section */}
+      <section className="min-h-screen flex items-center justify-center relative overflow-hidden pt-20">
+        <div
+          className="absolute inset-0 opacity-20"
+          style={{ transform: `translateY(${scrollY * 0.5}px)` }}
+        >
+          <div className="absolute top-20 left-10 w-72 h-72 bg-blue-500 rounded-full mix-blend-multiply filter blur-xl animate-pulse"></div>
</code_context>

<issue_to_address>
**issue (bug_risk):** scrollY is used in Hero but never defined or passed, which will cause a runtime error.

`Hero` uses `scrollY` in the background transform, but it isn’t defined in the component or received via props, so this will cause a `ReferenceError` at runtime. Please either pass `scrollY` into `Hero` (e.g., from `LandingPage` as with `Header`), manage scroll position within `Hero` via a hook, or remove this dependency if the parallax effect isn’t needed.
</issue_to_address>

### Comment 2
<location> `frontend/src/ui/home/Header.tsx:24` </location>
<code_context>
+            
+            {/* Desktop Menu */}
+            <div className="hidden md:flex space-x-8">
+              <a href="#features" className="hover:text-blue-400 transition-colors text-white">Fonctionnalités</a>
+              <a href="#tech" className="hover:text-blue-400 transition-colors text-white">Technologies</a>
+              <a href="#roadmap" className="hover:text-blue-400 transition-colors text-white">Roadmap</a>
</code_context>

<issue_to_address>
**issue (bug_risk):** Navigation link points to #features but the section id is still #fonctionnalites, breaking in-page navigation.

Desktop and mobile menus now link to `#features`, but the section in `Feature.tsx` still has `id="fonctionnalites"`, so the "Fonctionnalités" links don’t work. Please align these by either updating the hrefs to `#fonctionnalites` or renaming the section id to `features`.
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment on lines +17 to +19
<div
className="absolute inset-0 opacity-20"
style={{ transform: `translateY(${scrollY * 0.5}px)` }}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (bug_risk): scrollY is used in Hero but never defined or passed, which will cause a runtime error.

Hero uses scrollY in the background transform, but it isn’t defined in the component or received via props, so this will cause a ReferenceError at runtime. Please either pass scrollY into Hero (e.g., from LandingPage as with Header), manage scroll position within Hero via a hook, or remove this dependency if the parallax effect isn’t needed.

@sourcery-ai sourcery-ai bot changed the title Revamp landing page with tech stack, API endpoints, roadmap, and OSS CTAs Revamp landing page with tech stack, API overview, and roadmap Dec 13, 2025
@elhalj elhalj merged commit 1a1fd0a into main Dec 13, 2025
9 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants