-
-
Notifications
You must be signed in to change notification settings - Fork 25
Decision log
Codecov for tracking test coverage: https://codecov.io/gh/codebuddies/backend/tree/master/project
See: https://github.com/codebuddies/backend/pull/122
- no role management
-
“Customer agreements are in place with each Auth0 customer. These agreements cover data transfers to third parties that may occur as part of Auth0’s provision of its services to the customer.”
- expensive after 7000 users (and we hope to scale)
When a user clicks on a tag, we should show a sample of resources/hangouts/learning paths/notes/projects/groups associated with that tag (paginated)
In essence, tags are “global” — and should be editable/creatable by a moderator population
We looked more into the docs for django-taggit and researched using that in conjunction with DRF.
Decided on https://github.com/jazzband/django-taggit for its:
- ease of use
- because a global tag manager makes more sense for our uses cases (global tags that would span across models)
We selected Django with the Django REST Framework because it:
- provides a common framework for building REST services
- provides an opportunity for those learning Python to contribute
- allows those experienced with Django to build on skills they already have
- provides OpenAPI schema/documentation of the services
- exposing CodeBuddies as REST endpoints encourages decoupling from a single UI
- while other technology choices may offer better performance in certain situations, we haven't identified any CB functionality requiring performance optimization
We considered but ruled out the following:
- Go - low interest among the CB community to learn it
- Java - low interest among the CB community
- Node - some interest, but not enough people familiar with it
- GraphQL - additional complexity that doesn't solve an identified problem in the CB codebase. Can be added later if required. Isn't performant with Django right now, though.
- Serverless and GraphQL (using Netlify and AWS Lambda) -- newer/untested technology, fewer Stackoverflow references, depending on Netlify may be expensive if traffic grows
(h/t to @BillGlover for writing most of the bullet points above)