Markdown Converter
Agent skill for markdown-converter
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Sign in to like and favorite skills
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is a Canvas-style School Portal Platform for the Concentrate.ai hiring assessment. The system models an educational SaaS platform with three user roles (Admin, Teacher, Student) supporting class management, lesson publication, assignment submission, and grading.
Current Status (Session 13):
Key Constraints:
package.json (may add Radix/shadcn UI components)any types allowed - enforced by ESLintDocumentation:
| Layer | Technology |
|---|---|
| Frontend | Next.js 15, React 19, TailwindCSS, Radix UI |
| Backend | Node.js, Fastify, TypeScript, Zod |
| Database | PostgreSQL 17 with Kysely ORM |
| Caching | Redis |
| Testing | Vitest, @testing-library/react, Supertest, Playwright |
npm install docker-compose up -d # Start PostgreSQL and Redis
# Start services docker-compose up -d # Stop services docker-compose down # Check service health docker-compose ps
Database Connection:
localhost:5432concentrate-quizpostgres/postgreslocalhost:6379# Run all tests npm run test # View coverage report npm run coverage # Run specific test file npm run test <path-to-test> # Run E2E tests with Playwright npm run test:e2e
Testing Requirements:
npm run dev
# Lint check (enforces no `any` types) npm run lint # Format code (Prettier with Tailwind plugin) npm run format
Admin:
Teacher:
Student:
/api/v0/stats/)Public API endpoints for school-wide metrics:
| Endpoint | Method | Returns |
|---|---|---|
| GET | Average grade across all classes |
| GET | Average grade for specific class |
| GET | List of all teacher names |
| GET | List of all student names |
| GET | List of all classes |
| GET | List of students in a class |
The project currently has only the starter configuration. The expected structure should follow a monorepo pattern or clear service separation for:
any types - this is enforced by ESLint and will fail buildsreact-in-jsx-scope disabled (Next.js handles this)Implement a chatbot that:
5-10 minute video covering: