https://github.com/przemekciacka/time_tracker_live
Primitive time tracker built in Phoenix LiveView — creative microcycle project
https://github.com/przemekciacka/time_tracker_live
build-in-public creative-coding elixir phoenix-liveview time-tracking
Last synced: about 1 month ago
JSON representation
Primitive time tracker built in Phoenix LiveView — creative microcycle project
- Host: GitHub
- URL: https://github.com/przemekciacka/time_tracker_live
- Owner: przemekciacka
- Created: 2025-04-07T09:14:09.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2025-04-12T16:21:16.000Z (about 1 month ago)
- Last Synced: 2025-04-22T12:16:42.521Z (about 1 month ago)
- Topics: build-in-public, creative-coding, elixir, phoenix-liveview, time-tracking
- Language: Elixir
- Homepage:
- Size: 76.2 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Time Tracker Live (Phoenix LiveView)
A primitive time tracker built as part of a creative microcycle project.
This is an experiment in building functional software over perfect code, using Phoenix LiveView in a fullstack way, with minimal JavaScript.## 📦 Features (MVP)
- [x] Start/stop a timer
- [x] Add a description to a task
- [x] Show a list of completed entries
- [x] Preserve timer state across browser sessions
- [x] Sync start/stop between multiple open browser windows
- [ ] ~~Session-level user differentiation (no login)~~## 🔧 Under the Hood
- Phoenix LiveView (Elixir)
- GenServer for in-memory state
- PubSub for real-time sync
- ~~`cookie` or `localStorage` for session ID~~## 🎯 Development Goals
- Explore fullstack development in a functional paradigm
- Avoid premature optimization or visual polish
- Build iteratively from general to specific## 🚀 How to Run
```bash
# Clone the project
git clone https://github.com/your-username/time_tracker_live.git
cd time_tracker_live# Install dependencies
mix deps.get# Start the Phoenix server
mix phx.server
```Then visit [localhost:4000](http://localhost:4000) in your browser.