Contents of README.md:
1: # Task Manager Application
2: 
3: This is a full-stack task manager application with local authentication, built with Express.js, SQLite, and a simple vanilla JavaScript frontend.
4: 
5: ## Features
6: 
7: - User registration, login, and logout
8: - Session management using cookies
9: - SQLite database for users and tasks
10: - CRUD operations for tasks, protected by user authentication
11: - Input validation and error handling
12: - `/health` endpoint for readiness checks
13: 
14: ## Getting Started
15: 
16: ### Prerequisites
17: 
18: - Node.js (v14 or higher)
19: - npm
20: 
21: ### Installation
22: 
23: 1. Clone the repository (if applicable):
24:    ```bash
25:    git clone <repository-url>
26:    cd task-manager
27:    ```
28: 2. Install the dependencies:
29:    ```bash
30:    npm install
31:    ```
32: 
33: ### Running the Application
34: 
35: To start the server:
36: 
37: ```bash
38: npm start
39: ```
40: 
41: The application will be accessible at `http://localhost:3000`.
42: 
43: ### Smoke Test
44: 
45: To run the smoke tests:
46: 
47: ```bash
48: npm run smoke-test
49: ```
50: 
51: This will start the server, run a series of API tests for registration, login, task management, and logout, and then shut down the server. It also cleans up the test database files (`database.db` and `sessions.db`).
52: 
53: ## Project Structure
54: 
55: - `package.json`: Project dependencies and scripts.
56: - `server.mjs`: The backend Express.js server with API endpoints for authentication and task management.
57: - `public/`:
58:   - `index.html`: The main frontend HTML file.
59:   - `app.js`: The frontend JavaScript for interacting with the backend API.
60: - `smoke-test.mjs`: Automated tests for the API endpoints.
61: - `README.md`: This file.
62: 