Skip to content

A fork of the GC Digital Talent platform to facilitate grassroots crowdsourcing of translations.

License

Notifications You must be signed in to change notification settings

CivicTechTO/gc-digital-talent-community-translations

 
 

Repository files navigation

Welcome to the GC Digital Talent monorepo

Check schema CodeQL Jest Tests Lint PHP Unit Tests bundlewatch e2e-tests Translations

The GC Digital Talent app is divided into multiple services, each treated as its own sub-project:

  • /api, the API service

  • /apps, (new) location for frontend applications

  • /frontend, an npm project for frontend client code containing multiple workspaces:

    • /admin, a CRUD-style admin dashboard
    • /common, code shared by multiple other workspaces
    • /cypress, e2e testing with Cypress
    • /talentsearch, pages related to searching and requesting talent from pools
  • /tc-report, containing static content generated with Jekyll, mostly the Talent Cloud report. This used to be maintained in a separate repo, but now the entire project has been imported into this repo. See /tc-report/README.md for instructions on how to run Jekyll and re-generate the site content.

  • /infrastructure, support files for the docker infrastructure to run the project

    • this includes a mock oauth2 server (only used for local development envs)
  • /maintenance, additional scripts which run inside the docker containers for setup and updates

  • /packages, npm packages used by the /apps

The api, and frontend projects are designed to each run in a separate container. However, since they all use the Laravel framework, they can also be run on a single PHP server, with requests routed carefully between them. This is currently how docker infrastructure works.

Each sub-project has its own README.md, with advice on how to contribute to that sub-project. The README files also contain notes on how to configure the sub-projects, but if you simply want to get the project running on a new machine, you may disregard these notes and move straight to the steps below.

Testing

We do several types of testing: (internal documentation linked when available)

  • code style checks (aka linting)
    • ESLint feat. Prettier (JavaScript)
  • unit testing
    • Jest (ReactJS)
    • PHPUnit (PHP)
  • visual regression Testing
    • Storybook (ReactJS components)
  • end-to-end testing with Cypress (full app in-browser)
  • security checks (aka security regression testing)
    • CodeQL (JavaScript, TypeScript)

As much as possible, we aspire to make these runnable on:

  • ⌨️ your local command line
  • 💻 your IDE
  • ☁️ our continuous integration (CI) environment

Getting Started

Running with Docker

We strongly recommend running the project entirely with Docker. In this case the only dependency you must install on your machine is Docker Desktop.

Then, follow the instructions in ./maintenance/README.md to build the project docker containers and run the build scripts. That should handle everything!

Complications?

  • Make sure virtualization is enabled in your machine's BIOS (this is for Docker Desktop)
  • Docker is finicky—try exiting it entirely and restarting it

About

A fork of the GC Digital Talent platform to facilitate grassroots crowdsourcing of translations.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CSS 47.4%
  • HTML 22.7%
  • TypeScript 22.3%
  • PHP 6.4%
  • JavaScript 0.8%
  • SCSS 0.3%
  • Other 0.1%