first commit

This commit is contained in:
dimitar 2025-05-08 23:44:28 +02:00
commit 41b597f8fc

135
README.md Normal file
View File

@ -0,0 +1,135 @@
# TodoAI - AI-Powered Task Manager
A terminal-based task manager with AI-powered task analysis and organization.
## Features
- Terminal User Interface (TUI) for managing tasks
- AI-powered task analysis (priority, category, time estimates)
- Background analysis during idle hours
- Task searching and filtering
- Multiple AI model support with fallback mechanisms
- SQLite database with connection pooling
- Configurable via environment variables
## Installation
### Prerequisites
- Go 1.21 or higher
- SQLite3
- Ollama (for AI analysis)
### Building from source
1. Clone the repository:
```bash
git clone https://github.com/your-username/todo
cd todo
```
2. Install dependencies:
```bash
make install-deps
```
3. Build the application:
```bash
make build
```
### Using Docker
Build and run with Docker:
```bash
make docker-build
make docker-run
```
## Configuration
The application can be configured using environment variables:
### Database Settings
- `DB_PATH`: Path to SQLite database (default: "todoai.db")
- `DB_MAX_OPEN_CONNS`: Maximum open connections (default: 25)
- `DB_MAX_IDLE_CONNS`: Maximum idle connections (default: 5)
- `DB_CONN_MAX_LIFETIME`: Connection lifetime in minutes (default: 5)
### AI Settings
- `AI_MODEL_NAME`: Name of the AI model (default: "deepseek-r1:latest")
- `AI_PROVIDER`: AI provider (default: "ollama")
- `AI_API_KEY`: API key for AI service (if required)
### UI Settings
- `UI_THEME`: UI theme (default: "default")
- `UI_REFRESH_INTERVAL`: Task list refresh interval in seconds (default: 60)
- `UI_IDLE_START_HOUR`: Start hour for background analysis (default: 22)
- `UI_IDLE_END_HOUR`: End hour for background analysis (default: 6)
- `UI_MAX_DISPLAY_TASKS`: Maximum tasks to display (default: 100)
## Usage
### Keyboard Shortcuts
- `n`: New task
- `/`: Search tasks
- `TAB`: Toggle completed tasks
- `c`: Complete selected task
- `q` or `Ctrl+C`: Quit
- `ESC`: Cancel current action
- `Enter`: Select/confirm
## Development
### Running Tests
```bash
make test
```
### Code Quality
```bash
make lint
```
### Pre-commit Checks
```bash
make pre-commit
```
## Project Structure
```
.
├── src/
│ ├── ai/ # AI analysis functionality
│ ├── config/ # Configuration management
│ ├── database/ # Database operations
│ ├── models/ # Data models
│ └── ui/ # Terminal UI
├── main.go # Application entry point
├── Dockerfile # Container configuration
└── Makefile # Build and development tasks
```
## Contributing
1. Fork the repository
2. Create a feature branch
3. Make your changes
4. Run tests and linting (`make pre-commit`)
5. Submit a pull request
## License
MIT License - see LICENSE file for details