A tool to elevate pair programming by making pair rotations smooth and effective.
- User: Entity, a person who has logged in to pair.dance via SSO. Can be a member of multiple teams.
- Member: Entity, a user associated with a team.
- Task: Entity, for a piece of work a team member is working on. May be linked to an entity in a backlog management tool (e.g. Jira, Pivotal Tracker).
- Assignment: Value obejct, links a member with a task.
- Team: Aggregate root linking: members, tasks and assignment. Has also a name and a slug.
- All users can create unlimited number of teams.
- The user who created the team becomes its first member.
- Every team member can invite more people.
- Any number of members can be assigned to a single task. A single member may be assigned to any number of tasks.
- Allocations could happen on Slack
- Insights into pairing patterns can surface Retro conversations
- Use Tuple API to get actual allocations
- Use Google Calendar API to prevent pairing allocations which are unrealistic due to overlapping calendars
Initial setup:
- Assumes you have a pre M(1,2.3) Mac and brew
⚠️ Setup does not support MM(1,2.3)s. Contributions welcome!
./setup
Check types:
mix dialyzer
Run tests:
mix test
mix test.e2e
To start your Phoenix server:
- Install dependencies with
mix deps.get
- Create and migrate your database with
mix ecto.setup
- Start Phoenix endpoint with
mix phx.server
or inside IEx withiex -S mix phx.server
Now you can visit localhost:4000
from your browser.
Install latest phx:
mix archive.install hex phx_new
- Associations between tables tutorial
- Set up seeds, e.g. like in this project
- Official website: https://www.phoenixframework.org/
- Guides: https://hexdocs.pm/phoenix/overview.html
- Docs: https://hexdocs.pm/phoenix
- Forum: https://elixirforum.com/c/phoenix-forum
- Source: https://github.com/phoenixframework/phoenix
- Components: https://hexdocs.pm/phoenix/1.7.0-rc.0/components.html
- Live Components: https://hexdocs.pm/phoenix_live_view/Phoenix.LiveComponent.html