TechUp is a lightweight task-management app focused on personal growth and skill development.
The current product direction is a learning board where tasks represent learning activities, milestones, and practice goals tied to specific skills. The initial example use case is tracking progress through a course such as a React learning path.
This README should be updated whenever project knowledge changes in a way that would help a new contributor understand the current state of the product or repository.
Update this file when appropriate, including changes to:
- project purpose or product direction
- repository structure
- setup or run instructions
- testing or CI workflows
- major architecture or technology decisions
- important user workflows or current implementation status
The repository currently contains a client application for the learning board UI and a scaffolded server application for the backend API.
Current learning-board capabilities include:
- rendering a persistent top-level app navigation bar across routes
- rendering a home-page React Flow prototype for AI-oriented skill-tree exploration
- rendering five learning swim lanes
- rendering learning task cards inside those lanes
- opening the shared learning task modal from task cards and add-task controls
- creating new tasks in the modal UI
- editing existing task fields in the same modal UI
- showing progress on the board as display-only
- editing progress in the modal
The current modal experience updates in-memory board state through the reducer, but it is not yet backed by longer-term persistence or storage.
The current frontend stack includes:
Next.js 16React 19TypeScriptMUI@xyflow/react@dnd-kit/reactJestand React Testing Librarypnpm
The current backend stack includes:
NestJSTypeScriptESLintPrettierJestpnpm
Current top-level structure:
client/- Next.js frontend applicationserver/- NestJS backend application.github/workflows/- GitHub Actions workflow definitionsagents.md- living project memory for agent collaboration
Install client dependencies:
cd client
pnpm installStart the client development server:
pnpm devRun client unit tests:
pnpm testInstall server dependencies:
cd server
pnpm installStart the server in watch mode:
pnpm start:devRun server lint and formatting checks:
pnpm lint
pnpm format:checkThe project currently uses Jest with React Testing Library for frontend unit tests.
Current test coverage includes:
- learning page swim lane structure
- swim lane semantics and accessibility labels
- learning task card rendering and interaction behavior
- learning task modal rendering, accessibility, and form behavior
- progress field rendering and editable/display-only states
When writing or updating UI unit tests, include accessibility assertions where practical. When forms include required fields, tests should cover both valid submission and blocked submission paths where practical.
Pull request validation is currently defined in:
.github/workflows/pull-request.yml
The current workflow:
- runs on pull request
opened,synchronize,reopened, andready_for_review - uses
ubuntu-latest - uses
pnpmversion10 - uses
Node.jsversion22 - skips draft pull requests so CI only runs once the pull request is ready for review
- future pull request pipelines in this repository should also skip draft pull requests and wait until
ready_for_review - runs the client and server unit test suites as separate jobs on non-draft pull requests
- exposes a final
Unit Test Gatecheck that passes only when both unit test jobs succeed - runs a standalone
pnpm outdated --format jsonjob inclient/only for pull requests targetingmaster, uploading the generated report as a workflow artifact - runs a
pnpm audit --audit-level highjob inclient/only for pull requests targetingmaster - blocks the
masterpull request workflow when the client audit finds any vulnerability athighseverity or above - installs dependencies in
client/withpnpm install --frozen-lockfile - runs the client unit test suite with
pnpm exec jest --runInBand, waiting for the audit job to pass when the pull request targetsmaster - installs dependencies in
server/withpnpm install --frozen-lockfile - runs the server unit test suite with
pnpm exec jest --runInBand
Accessibility is a project-level goal. The current direction is to keep semantics, labels, headings, roles, and form behavior aligned with Section 508 expectations wherever practical.