1. Objective

The primary goal of this project is to demonstrate full-stack development competency by creating a functional web application.

The application must allow users to:

  1. Manage Tasks: Create, read, update (status/priority), and list tasks with detailed information (title, description, due date).
  2. Provide Insights: Generate a simple, rule-based summary (an "AI-like" touch) of the user's workload, demonstrating basic analytical logic outside of a large language model (LLM).

The submission must be fully documented and structured according to professional standards.


2. Technical Requirements

This project requires a standard modern full-stack JavaScript environment.

Component Technology Description
Backend Node.js & Express Used for creating the REST API endpoints.
Database SQLite3/Better-SQLite3 Recommended for simplicity and portability in a 24-hour test; allows for a single-file database. Alternatively, use MongoDB or PostgreSQL if preferred.
Frontend React / Vanilla JavaScript Used for the client-side user interface (UI) to interact with the backend API.
Package Manager npm / yarn For managing dependencies in both the backend and frontend.
Prerequisites Node.js (LTS) Must be installed on your machine.
Documentation README.md, DECLARATION.md, notes.md Required files for project setup, integrity confirmation, and design explanation.

3. Step-by-Step Instructions

This project can be broken down into eight sequential steps, split between the backend, database, and frontend.

Phase 1: Backend & Database Setup

Step 1: Initialize the Node.js Backend

  1. Create a new root folder for your project (e.g., task-tracker).

  2. Inside, create the backend folder.

  3. Open your terminal inside the backend folder and initialize a Node.js project:Bash

    npm init -y

  4. Install the core dependencies: Express for the web server and a CORS package to handle cross-origin requests from the frontend.Bash

    npm install express cors

  5. Create the main server file (server.js or index.js) and set up a basic Express server to listen on a port (e.g., 3000).