MVP

RepoTeam

A collaborative project-management platform for teams to organize projects, track issues, and work together.

  • Python
  • Django
  • SQLite
  • HTML
  • CSS
  • JavaScript
RepoTeam dashboard showing the user's teams, team projects, and open issue counters
dashboard preview

PROJECT STATUS

MVP - Minimal Viable Product.

RepoTeam is designed to validate the core team → project → issue workflow. It is under active development and not yet production-ready.

Under active development

THE IDEA

A central place to organize the work.

Development teams juggle a lot: who is on which team, what projects exist, what work is open, and who owns it. RepoTeam gives those teams one central place to create teams, organize software projects, track issues, assign work, and collaborate on development-related work.

The whole product is built around a simple spine: teams contain projects, and projects contain issues. The MVP exists to validate that exact workflow before anything bigger gets layered on.

THE CORE WORKFLOW

One spine: team → project → issue.

The MVP is organized around a single path through the product.

  1. User
  2. Team
  3. Project
  4. Issues
  5. Track work

The documented typical flow

  1. Register an account
  2. Log in
  3. Create a team
  4. Invite team members by username
  5. Create a project inside the team
  6. Create and assign issues
  7. Update issue statuses and priorities
  8. Manage team members and roles
  9. Track work from dashboard and workspaces

WHAT I BUILT

The core features.

Six compact areas cover the whole MVP - no production features promised yet.

01

Accounts & authentication

  • Registration with username, email, and password confirmation
  • Login and CSRF-protected logout
  • Personalized welcome screen for authenticated users
02

Dashboard

  • Personal workspace summarizing your teams
  • Live counters for teams, projects, and open issues
  • Quick “Create team” action and team list
  • Open and empty states handled
04

Projects

  • Projects belong to a team
  • Created inside a team workspace
  • Project workspace listing all issues
  • Creator metadata on every project
05

Issues

  • Create with title, description, status, priority, and assignee
  • Edit any field at any time
  • Delete with a confirmation step
  • Assign issues to any team member
06

Permissions

  • Checks on every authenticated page
  • Gates for invites, removals, and role changes
  • Non-members redirected to the dashboard

ISSUE TRACKING

Issues that move toward done.

Each issue carries a title, description, status, priority, and an optional assignee from the team.

To DoIn ProgressIn ReviewDone
PrioritiesLowMediumHigh

WHO CAN DO WHAT?

Three roles, clear boundaries.

Permission checks run on every authenticated page.

Owner

Runs the team. Full control.

  • Full team access
  • Invite members
  • Remove members, including admins
  • Change member roles
  • Create projects
  • Create, edit, and delete issues

The owner's own membership can't be removed or re-assigned.

Admin

Full team access, with limits.

  • Full team access
  • Invite members
  • Remove eligible members - never an owner or another admin
  • Cannot change roles
  • Create projects
  • Create, edit, and delete issues

Member

Read access plus issue work.

  • Read access to team workspace
  • Create projects
  • Create, edit, and delete issues
Unauthorized actions redirect back to the team page with a message; non-members are redirected to the dashboard.

UNDER THE HOOD

How it's built.

A server-rendered Django app with a custom CSS design system.

Backend
PythonDjango 5.2
Database
SQLite
Templates
Django Template LanguageHTML
Styling
Custom CSSCSS variablesDesign-system approach
Scripting
Minimal vanilla JavaScript

ENGINEERING NOTE

Server-rendered by design.

Django TemplatesCustom CSSMinimal Vanilla JS

RepoTeam deliberately uses Django server-rendered templates rather than a frontend framework. Every page round-trips through Django, a custom CSS design system holds the styling, and interaction stays minimal.

THE DATA MODEL

Five models down one spine.

  1. User
  2. Membership
  3. Team
  4. Project
  5. Issue
IssueUser

nullable - issues can be unassigned

A Comment model exists in the data layer, but commenting is not yet implemented in the UI.

FROM IDEA TO DONE

The issue lifecycle.

The six moves an issue goes through in the current MVP.

CreateAssignSet priorityUpdate statusEditDelete

PROJECT STRUCTURE

A compact Django layout.

manage.py sits at the root; the core app keeps models, views, forms, admin, tests, templates, and static assets together.

Django projectCore appModelsViewsFormsTemplatesStatic assets

TESTED WORKFLOWS

Kept honest by the test suite.

The documented automated tests that keep the MVP grounded.

Page renderingEvery page view is covered by the automated test suite.
Issue CRUD flowsCreate, edit, and delete runs are tested end to end.
Team creationTeam setup is exercised from the dashboard flow.
Project creationCreating a project inside a team is covered.
Issue creationIssue creation within a project is covered.
Permission checksRole-based rules for owners, admins, and members are verified.

WHAT'S NEXT

Shipped today, and the direction ahead.

An MVP intentionally draws a line between what exists now and what could come later.

CURRENT MVPImplemented and working in the codebase today.
Accounts & authenticationDashboardTeamsProjectsIssuesPermissions
FUTURE IDEASDocumented as planned or potential - not in the codebase.
Real-time notificationsActivity feedsAdvanced issue filtering & searchFile attachmentsGitHub integrationEmail invitationsKanban boardAnalytics & reportingDark modeIssue comments UIProduction deployment
None of these future ideas exist in the codebase today - they're direction, not features.

PROJECT DETAILS

The essentials.

ProjectRepoTeam
CategoryMVP
StackPython / Django / SQLite / HTML / CSS / JavaScript
ArchitectureDjango server-rendered templates
DatabaseSQLite
StatusMVP / Active development
LicenseNo license currently selected

Want to explore the code?

Dive into the implementation, the permission checks, and the test suite.

View RepoTeam on GitHub