-
-
Notifications
You must be signed in to change notification settings - Fork 26
Technical Onboarding for Developers
Follow these guides to get started with the project
-
How to build and run the project.
- For experienced developers: fork and clone the project, then do this subsection to run it in docker
- How to authenticate with Cognito and work with the API
Please post any problems in the slack channel so we can fix/improve the pages. Or better yet, help in fixing them yourself.
-
Project
- Slack channel where we have ephemeral project discussions. Permanent discussions should be done in GitHub issues.
- Code repository where we keep the code.
-
GH Pages Documentation where we keep code-related docs. This is synced to the current state of the
main
branch. - Wiki documentation where we keep project but not code-related documentation.
- Project Board where we track the project's progress.
-
Design
- Entity Relationship Diagram (ERD)
- PD: Table and Field definitions - this spreadsheet has grown beyond its original scope and now contains data that will be imported into the DB.
Currently, we need to build out the database to support the VRMS project, as described in the temporary roadmap
We need help and have guides to do the following:
What issues to work on:
-
Model (table) creation
-
There are
good first issue
issues in the Project board's Prioritized Backlog. What makes them "easy" is they are generally tables/models/that can stand alone, without relationships to other models. -
After finishing one of those, the next issue to work on might be a table/model that relates to your first one. These usually have a single relationship. See the ERD to see which one it is. For the
language
model, it would be theproject_language_xref
model. -
Another type of model comes with initial data. These are very similar to the
good first issue
issues except for the extra data that need to be coded in. There's a guide on how to add migration files for initial data to help in doing that. -
Lastly, there's the rest of the models.
-
-
Larger issues or groups of issues (epics)
- Permissions implementation
- Events schema redesign
- Documentation (structure and content)
- Deployment to AWS
- Local self-sufficient setup (not relying on external services like cognito and S3)
- Reference client for the backend
For Windows, the best way is to install wsl and vscode in the order suggested here. Then install git from wsl.
- Git
- POSIX-style shell (bash is a common one)
- Linux and macOS already come with one
- Windows
- Install wsl or wsl2 with Ubuntu.
- Alternatively, install git with git-bash shell (can work, but not officially supported by this project)
- VS Code (preferred because of the plugins below) or other code editor
- Plugins (for VS Code)
- Remote Development (or at least Remote - Containers) - allows Code to use the environment inside a docker container for discovering code issues. Otherwise, it will think all the django imports are missing.
- Pylance - python language support. Also supports black code formatter if it's installed
- Markdown Preview Enhanced - for previewing markdown, with support for diagrams, including mermaid and plantuml
- ShellCheck - lint for shell scripts
- hadolint - lint for Dockerfile
- Plugins (for VS Code)
- Docker (Docker Engine or Docker Desktop) and docker-compose
- ModHeader browser plugin - for setting authentication header
- Python
- Very basic intro - DjangoGirls Python Intro
- Best practices - testdriven.io Python Guides
- Software architecture - Architecture Patterns with Python
- TDD and Django - Test-Driven Development with Python
- Django (just the models, not the templates)
- Very basic intro - DjangoGirls Django Tutorial
- Official tutorial - djangoproject.com tutorials
- Best practices - Hacksoft's Django style guide
- Django REST Framework
- Official project tutorial - django-rest-framework.org tutorials
- Best practices - Hacksoft's Django style guide APIs and Serializers
Click Pages above to see all documentation in alphabetic order. The below list organizes the documentation and excludes some less critical documentation.
Onboarding
- Onboarding & offboarding all non-Product team members☑️
- Onboarding & offboarding Product team members☑️
- Additional technical onboarding for Developers☑️
Guides
Draft
- How-Knowledgebase-will-use-People-Depot
- Auto generating seed data scripts from data - generic, non-people depot specific
- Requirements for People Depot V1☑️
- People Depot Tables and Fields☑️
- Other related data☑️
- Stakeholder's that will use People Depot☑️
Security Requirements, Test Cases, and Technical Design
- Security: Functional Requirements. Derived from Test Cases in Issue #150
- [Test Cases] - pending, see Test Cases in Issue #150
- Security: Field Level Proposal (using Github Copilot