diff --git a/README.md b/README.md index a675d55..d8c1a95 100644 --- a/README.md +++ b/README.md @@ -1,188 +1,128 @@ -
+# Tracker - -
+Tracker is a Ruby on Rails application for running team standups with clear visibility into daily progress, upcoming work, and blockers. +## Overview -# TRACKER - -Transforming Teams, Accelerating Success Daily - - -last-commit -repo-top-language -repo-language-count +Tracker helps teams stay aligned by combining: -Built with the tools and technologies: +- **Daily standup logging** with structured entries (`Did`, `Todo`, and `Blocker`). +- **Team-level views** to review member updates by day. +- **Account + role-based access** for multi-user organizations. +- **Automated reminders and recaps** using Sidekiq + Sidekiq Cron jobs. -Markdown -Ruby -JavaScript -Docker -GitHub%20Actions +The app is built on Rails 8 with PostgreSQL, Hotwire, and Sidekiq. -
-
+## Features ---- +- Authentication and invitation flow with Devise / Devise Invitable. +- Account and team management. +- Standup creation/editing with nested task items. +- Activity feed focused on the current user’s standup history. +- Background job scheduling for reminder and recap workflows. -## Table of Contents +## Tech Stack -- [Overview](#overview) -- [Getting Started](#getting-started) - - [Prerequisites](#prerequisites) - - [Installation](#installation) - - [Usage](#usage) - - [Testing](#testing) -- [Project Structure](#project-structure) +- **Backend:** Ruby on Rails 8 +- **Database:** PostgreSQL +- **Frontend:** Hotwire (Turbo + Stimulus), Tailwind CSS +- **Background Jobs:** Sidekiq + Sidekiq Cron +- **Testing:** RSpec, Factory Bot, Capybara ---- +## Prerequisites -## Overview +Before running Tracker locally, install: +- Ruby (version compatible with the project’s Gemfile) +- Bundler +- PostgreSQL +- Redis (required for Sidekiq) +## Local Setup ---- - -## Project Structure - -```sh -└── tracker/ - ├── .github - │ ├── dependabot.yml - │ └── workflows - ├── Dockerfile - ├── Gemfile - ├── Gemfile.lock - ├── Procfile.dev - ├── README.md - ├── Rakefile - ├── app - │ ├── assets - │ ├── controllers - │ ├── helpers - │ ├── javascript - │ ├── jobs - │ ├── mailers - │ ├── models - │ ├── services - │ └── views - ├── config - │ ├── application.rb - │ ├── boot.rb - │ ├── cable.yml - │ ├── cache.yml - │ ├── credentials.yml.enc - │ ├── database.yml - │ ├── deploy.yml - │ ├── environment.rb - │ ├── environments - │ ├── importmap.rb - │ ├── initializers - │ ├── locales - │ ├── puma.rb - │ ├── queue.yml - │ ├── recurring.yml - │ ├── routes.rb - │ └── storage.yml - ├── config.ru - ├── db - │ ├── cable_schema.rb - │ ├── cache_schema.rb - │ ├── migrate - │ ├── queue_schema.rb - │ ├── schema.rb - │ └── seeds.rb - ├── lefthook.yml - ├── lib - │ └── tasks - ├── log - │ └── .keep - ├── script - │ └── .keep - ├── spec - │ ├── factories - │ ├── jobs - │ ├── mailers - │ ├── models - │ ├── rails_helper.rb - │ ├── requests - │ ├── services - │ ├── spec_helper.rb - │ ├── support - │ ├── system - │ └── views - └── storage - └── .keep -``` - ---- +1. **Clone the repository** -## Getting Started + ```bash + git clone https://github.com/syntaxmage05/tracker.git + cd tracker + ``` -### Prerequisites +2. **Install dependencies** -This project requires the following dependencies: + ```bash + bundle install + ``` -- **Programming Language:** Ruby -- **Package Manager:** Bundler, Rake -- **Container Runtime:** Docker +3. **Prepare the database** -### Installation + ```bash + bin/rails db:prepare + ``` -Build tracker from the source and install dependencies: +4. **Run the development environment** -1. **Clone the repository:** + ```bash + bin/dev + ``` - ```sh - ❯ git clone https://github.com/syntaxmage05/tracker - ``` +`bin/dev` starts: -2. **Navigate to the project directory:** +- Rails web server +- Tailwind watcher +- Sidekiq worker (via `Procfile.dev`) - ```sh - ❯ cd tracker - ``` +## Useful Commands -3. **Install the dependencies:** +```bash +# Run the test suite +bundle exec rspec -**Using [docker](https://www.docker.com/):** +# Run static analysis +bin/brakeman +bin/rubocop -```sh -❯ docker build -t syntaxmage05/tracker . +# Open Sidekiq dashboard (when app is running) +# http://localhost:3000/sidekiq ``` -**Using [bundler](https://www.ruby-lang.org/):** -```sh -❯ bundle install -``` +## Background Jobs -### Usage +Tracker schedules recurring jobs every 15 minutes for: -Run the project with: +- Team reminder discovery (`Reminders::FindTeamsJob`) +- Team recap discovery (`Recaps::FindTeamsJob`) -**Using [docker](https://www.docker.com/):** +These schedules are configured through Sidekiq Cron during Sidekiq server startup. -```sh -docker run -it syntaxmage05/tracker . -``` -**Using [bundler](https://www.ruby-lang.org/):** +## Core Routes -```sh -bundle exec ruby -``` +- `/` → personal activity view +- `/t` → teams +- `/s` → standups +- `/sidekiq` → Sidekiq Web UI -### Testing +## Project Structure -Tracker uses the {RSPEC} test framework. Run the test suite with: +```text +app/ + controllers/ # HTTP endpoints and request flow + models/ # Domain models (standups, tasks, teams, accounts, users) + services/ # Service objects for business workflows + views/ # ERB views and UI templates +config/ + routes.rb # Route definitions + initializers/ # Framework and integration setup (Sidekiq, Devise, etc.) +spec/ # RSpec test suite +``` +## Deployment -```sh -bundle exec rspec -``` +The repository includes Docker and Kamal configuration files for containerized deployment workflows. ---- +## Contributing -
⬆ Return
+1. Create a feature branch. +2. Make and test your changes. +3. Open a pull request with a clear summary and validation steps. ---