A minimal task management application built for the GitHub Copilot workshop.
- ✅ Create, read, update, and delete tasks
- ✅ Mark tasks as completed
- ✅ Simple and clean user interface
- ✅ SQLite database (no external dependencies)
- ✅ REST API
- Backend: Node.js + Express
- Database: SQLite3
- Frontend: Vanilla HTML/CSS/JavaScript
- Testing: Playwright
You can run this application either locally or using the devcontainer:
Requires the following tools installed on your machine:
- Node.js (version 20 or higher recommended)
- npm (comes with Node.js)
Requires:
- Container Runtime: Docker Desktop, Rancher Desktop, or Podman Desktop
- VS Code with Dev Containers extension
- GitHub Copilot Chat extension (authenticated before opening the devcontainer)
See .devcontainer/README.md for detailed devcontainer setup instructions.
- Install dependencies
npm install
npm run devnpm startThe app will be available at http://localhost:3000
GET /api/tasks- Get all tasksGET /api/tasks/:id- Get a single taskPOST /api/tasks- Create a new task{ "title": "Task title", "description": "Task description (optional)" }PUT /api/tasks/:id- Update a task (all fields required){ "title": "Updated title", "description": "Updated description", "completed": 1 }DELETE /api/tasks/:id- Delete a task
copilot-sample-app/
├── src/
│ ├── database/
│ │ ├── db.js # Database connection
│ │ └── init.js # Database initialization
│ ├── routes/
│ │ └── tasks.js # Task API routes
│ └── server.js # Express server setup
├── public/
│ ├── index.html # Frontend UI
│ ├── styles.css # Styles
│ └── app.js # Frontend JavaScript
├── package.json
└── README.md
Playwright is configured for E2E testing. Test files can be added in a tests/ directory with the .spec.js extension.
Run tests:
npm testRun tests in headed mode (see browser):
npm run test:headedThis app intentionally has some missing features that will be added during the workshop:
- Input Validation - Add validation to task endpoints
- Comments Feature - Add ability to comment on tasks
- Priority System - Add task priorities (High/Medium/Low)
- Due Dates - Add due dates to tasks (demonstrated in workshop)
MIT