Skip to content
Théophile MADET edited this page Jun 19, 2024 · 11 revisions

Welcome to the Tapir wiki!

Here I (Théo) will try to define what our needs are in terms of documentation and propose an outline of the documentation's structure to serve as a discussion base. Once the team agrees on a place, format and process, the intention is for the documentation effort to be distributed among the team.

Goals

The goals are to :

  • enable current developers to do more
  • facilate the welcoming of new members
  • ensure the maintainability of Tapir through time and changes within the team

In order to work toward those goals, we intend to document how to develop, test, and deploy Tapir.

Linked with the documentation on Tapir development are two other user groups : data analysis and member office. Ideally, we would find a way to avoid repeated work and inconsistencies between these documentations. However, in order to help the current dev team members faster, I suggest that we work toward that goal in a second step.

An overview of previous documentation efforts is available on this page.

Outline proposal

Following our meeting on the 05.06.24 (notes), I suggest to start with the following content:

  • Release process: how do we go from a feature request or a bug report to a new version being deployed to the production server?
  • Automated tests:
    • When and how to write tests
    • What kinds of tests do we use
    • How to run them and read the results
    • What is test coverage and how to check it
  • Debugging:
    • How to track a bug on the production server: accessing and reading logs
    • How to use a debugger
  • Getting started:
    • Resources to get started with Python
    • Resources to get started with Django
    • How to setup your development environment:
      • How to get Tapir running on your local machine
      • Setup your IDE
    • Learn by example: walking through the most common used features to understand how they are setup
      • Examples:
        • The simplest page is the "about" page: https://members.supercoop.de/coop/about
        • How are members created?
        • How do shift attendances work? From a member registering to a shift to the member office confirming attendance and the member's score updating.
      • Points that we should make sure are described in the examples:
        • Working with database models and migrations
        • Access permissions
        • Writing and testing services
  • Misc points to address:
    • LDAP
    • Scheduled tasks with Celery
    • Sending emails
    • Keeping track of changes with LogEntry models
    • Translations
    • Deployment (meeting on the 25.06.24: https://supercoopberlin.slack.com/archives/CHNUD32JJ/p1717685190055969)
    • How to get informed when errors happen on production (receive an email with the stacktrace automatically)
    • How to use GitHub, where to look for stuff...
Clone this wiki locally