mirror of
https://github.com/TracksApp/tracks.git
synced 2026-01-31 13:15:17 +01:00
Tracks is a GTD™ web application, built with Ruby on Rails
https://www.getontracks.org/
Features: - Single binary deployment with embedded HTML templates - Dark and light mode theme switcher with localStorage persistence - Server-side rendered Go templates - Clean, modern UI with CSS variables for theming - Login page with default admin credentials hint - Dashboard with statistics and quick actions - Admin user management page - Session management via HTTP-only cookies Implementation: - Created web templates in cmd/tracks/web/templates/ - base.html: Main layout with navigation and theme toggle - login.html: Login form with first-time user hint - dashboard.html: Main dashboard with stats cards and recent todos - admin_users.html: User management with create user modal - Added web_handler.go for serving web UI - ShowLogin: Renders login page - HandleLogin: Processes login form, sets cookie, redirects to dashboard - HandleLogout: Clears cookie, redirects to login - ShowDashboard: Shows personalized dashboard with stats - ShowAdminUsers: Admin-only user management page - HandleCreateUser: Processes user creation form - Updated main.go to embed templates using //go:embed - Added web routes before API routes: - GET/POST /login (public) - GET /logout (public) - GET / and /dashboard (authenticated) - GET/POST /admin/users (authenticated + admin) UI Features: - Responsive design with mobile support - Theme persistence across sessions - Clean card-based layout - Statistics dashboard (active todos, projects, contexts, completed today) - Quick action buttons - Admin badge for admin users - Navigation menu with conditional admin links Security: - HttpOnly cookies for session tokens - Admin middleware for protected routes - CSRF protection via form POST - Password fields properly masked No external dependencies - all CSS and JS inline in templates. Everything compiles into single binary. Tested: - Login page renders correctly ✓ - Login form submits and creates session ✓ - Dashboard displays with user info ✓ - Theme toggle functionality included ✓ - Admin user sees admin links ✓ |
||
|---|---|---|
| .github | ||
| app | ||
| bin | ||
| cmd/tracks | ||
| config | ||
| db | ||
| doc | ||
| internal | ||
| lib | ||
| log | ||
| public | ||
| script | ||
| test | ||
| test-envs | ||
| vendor/assets | ||
| .codeclimate.yml | ||
| .dockerignore | ||
| .env.example | ||
| .gitignore | ||
| .rubocop.yml | ||
| .ruby-version | ||
| .yardopts | ||
| config.ru | ||
| CONTRIBUTING.md | ||
| COPYING | ||
| docker-compose.yml | ||
| docker-entrypoint.sh | ||
| Dockerfile | ||
| Gemfile | ||
| Gemfile.lock | ||
| go.mod | ||
| go.sum | ||
| mkdocs.yml | ||
| Rakefile | ||
| README.md | ||
| README_GOLANG.md | ||
| SECURITY.md | ||
| test_api.sh | ||
Tracks: a GTD™ compatible web application built with Ruby on Rails
About
- Project homepage: http://www.getontracks.org/
- Manual: http://www.getontracks.org/manual/
- Source at GitHub: https://github.com/TracksApp/tracks
- Hosted services: https://github.com/TracksApp/tracks/wiki/Hosted-Tracks
- Bug reports and feature requests: https://github.com/TracksApp/tracks/issues
- Mailing list: http://groups.google.com/group/TracksApp
- License: See COPYING
Full instructions for both new installations and upgrades from older installations of Tracks can be found in the wiki.
As always, make sure that you take sensible precautions and back up all your data frequently, taking particular care when you are upgrading.
Enjoy being productive!
Contributors and consulting
- Original developer: bsag (http://www.rousette.org.uk/)
- Principal maintainer: Jyri-Petteri ”ZeiP” Paloposki
(sponsored by Ardcoras oy, also available for paid consulting)
- If you want to support the maintainer's work, subscribe to the hosted version.
- Contributors: https://github.com/TracksApp/tracks/wiki/Contributors
If you are thinking about contributing towards the development of Tracks, please read /CONTRIBUTING.md for general information. Also you can find some information on development, testing and contributing on the wiki.