diff --git a/README.md b/README.md new file mode 100644 index 0000000..fa14d7b --- /dev/null +++ b/README.md @@ -0,0 +1,127 @@ +# 🦝 Raccoon Timekeeper + +A self-hosted time tracking application with a sleek grayscale design. + +![Raccoon Timekeeper](https://img.shields.io/badge/version-1.0.0-gray) +![Python](https://img.shields.io/badge/python-3.10+-blue) +![License](https://img.shields.io/badge/license-MIT-green) + +## Features + +- ⏱️ **Flexible Time Entry** - Log time in multiple formats (1:30, 1.5, 90m, 1h 30m) +- 📅 **Weekly Summaries** - View time grouped by task and day (Monday-Sunday weeks) +- 🖨️ **Printable Timesheets** - Generate clean printable weekly reports +- 📋 **Task Management** - Create, edit, and organize your tasks +- 📊 **Data Export** - Export your data as JSON or CSV +- 🎨 **Raccoon Theme** - Sleek grayscale design + +## Quick Start + +### Using Docker (Recommended) + +```bash +# Clone the repository +git clone https://gitea.hideawaygaming.com.au/jessikitty/Raccoon-TimeKeeper.git +cd Raccoon-TimeKeeper + +# Start with Docker Compose +docker-compose up -d + +# Access at http://localhost:5000 +``` + +### Manual Installation + +```bash +# Clone the repository +git clone https://gitea.hideawaygaming.com.au/jessikitty/Raccoon-TimeKeeper.git +cd Raccoon-TimeKeeper + +# Create virtual environment +python -m venv venv +source venv/bin/activate # On Windows: venv\Scripts\activate + +# Install dependencies +pip install -r requirements.txt + +# Copy environment file +cp .env.example .env + +# Run the application +python app.py + +# Access at http://localhost:5000 +``` + +## Configuration + +Create a `.env` file based on `.env.example`: + +```env +SECRET_KEY=your-super-secret-key-change-me +DATABASE_URL=sqlite:///data/timekeeper.db +DEBUG=false +``` + +## Time Entry Formats + +The time input field accepts multiple formats: + +| Format | Example | Result | +|--------|---------|--------| +| Hours:Minutes | `1:30` | 1h 30m | +| Decimal Hours | `1.5` | 1h 30m | +| Minutes | `90m` | 1h 30m | +| Hours | `2h` | 2h 0m | +| Combined | `1h 30m` | 1h 30m | + +## API Endpoints + +| Method | Endpoint | Description | +|--------|----------|-------------| +| GET | `/api/tasks` | Get all tasks | +| POST | `/api/tasks` | Create a task | +| PUT | `/api/tasks/` | Update a task | +| DELETE | `/api/tasks/` | Delete a task | +| GET | `/api/entries` | Get all time entries | +| POST | `/api/entries` | Create a time entry | +| PUT | `/api/entries/` | Update a time entry | +| DELETE | `/api/entries/` | Delete a time entry | +| GET | `/api/weekly-summary` | Get weekly summary | + +## Project Structure + +``` +raccoon-timekeeper/ +├── app.py # Main Flask application +├── requirements.txt # Python dependencies +├── Dockerfile # Docker build file +├── docker-compose.yml # Docker Compose config +├── .env.example # Example environment file +├── templates/ # HTML templates +│ ├── base.html +│ ├── index.html +│ └── settings.html +└── static/ + ├── css/ + │ └── style.css # Raccoon grayscale theme + └── js/ + ├── app.js # Shared utilities + ├── index.js # Index page logic + └── settings.js # Settings page logic +``` + +## Development + +```bash +# Run in debug mode +DEBUG=true python app.py +``` + +## License + +MIT License - feel free to use and modify! + +--- + +Made with 🦝 by Raccoon Timekeeper