Skip to content

Commit

Permalink
Merge pull request #743 from cisagov/730-adr-django-admin
Browse files Browse the repository at this point in the history
ADR decision to use Django Admin
  • Loading branch information
brandonlenz authored Jun 22, 2023
2 parents 9e0c111 + bba9f1b commit 20291af
Showing 1 changed file with 41 additions and 0 deletions.
41 changes: 41 additions & 0 deletions docs/architecture/decisions/0021-django-admin.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# 21. Use Django Admin for Application Management

Date: 2023-06-22

## Status

Accepted

## Context

CISA needs a way to perform administrative actions to manage the new get.gov application as well as the .gov domain
application requests submitted. Analysts need to be able to view, review, and approve domain applications. Other
dashboard views, reports, searches (with filters and sorting) are also highly desired.

## Decision

Use Django's [Admin](https://docs.djangoproject.com/en/4.2/ref/contrib/admin/) site for administrative actions. Django
Admin gives administrators all the powers we anticipate needing (and more), with relatively little overhead on the
development team.

## Consequences

Django admin provides the team with a _huge_ head start on the creation of an administrator portal.

While Django Admin is highly customizable, design and development will be constrained by what is possible within Django
Admin.

We anticipate that this will, overall, speed up the time to MVP compared to building a completely custom solution.

Django Admin offers omnipotence for administrators out of the box, with direct access to database objects. This includes
the ability to put the application and its data in an erroneous state, based on otherwise normal business rules/logic.

In contrast to building an admin interface from scratch where development activities would predominantly
involve _building up_, leveraging Django Admin will require carefully _pairing back_ the functionalities available to
users such as analysts.

While we anticipate that Django Admin will meet (or even exceed) the user needs that we are aware of today, it is still
an open question whether Django Admin will be the long-term administrator tool of choice. A pivot away from Django Admin
in the future would of course mean starting from scratch at a later date, and potentially juggling two separate admin
portals for a period of time while a custom solution is incrementally developed. This would result in an overall
_increase_ to the total amount of time invested in building an administrator portal.

0 comments on commit 20291af

Please sign in to comment.