Skip to content
This repository has been archived by the owner on Aug 11, 2022. It is now read-only.
tristan-orourke edited this page Jan 22, 2021 · 16 revisions

Introduction

Welcome to the Talent Cloud wiki!

Talent Cloud is an experimental platform trying to improve hiring and talent mobility within the Government of Canada. It is entirely open source. This wiki will help explain how to develop for and contribute to the project.

Getting Started

Installation

The first step will be to host an instance of the Talent Cloud server locally, to test your changes.

Docker

If you're interested in running everything in Docker containers, check out out our tc-docker repository and README.

Everything Local

If you want to install and run all the software locally (which may improve performance) please reference this README.

Code Standards

Next, check our coding style guide.

We recommend using Visual Studio Code as your code editor. The team can recommend many useful extensions, and we use a workspace settings file to help keep code consistent.

If you use the recommended VS Code, the style guide will also help you set up linting and automated formatting.

Exploring the Site

Once you have the site running locally, this document will help you understand the various high-level features of the site.

Automated tests

See this document on how and when to write automated tests.

Site Details

The Tech Stack Explains the most important software, frameworks and languages used for Talent Cloud.

Resource Compilation How to ensure new ts files and scss files are bundled into the public folder.

Writing Performant Queries Tips and Tricks on writing performant database queries, and finding problematic ones.

Pending documentation

Data Model TODO: Explain Eloquent, how models are repeated in models/types.ts. Relations. Critical pieces of data model: user/manager/applicant/hr, JobPoster, Application, Skills, Criteria?

Database TODO: How to edit, create tables (migrations). Polymorphic relations.

Testing TODO: jest,phpunit,testcafe. When to write tests. When to run tests.

Debugging TODO: How to use debugbar, add logs in php. Where to read logs. console.log, storybook. Frontend debuging?

Events TODO: How to use laravel events to trigger things. Examples

Scheduled jobs TODO: How to use laravel to run jobs at certain times. What we use it for

How a page is rendered TODO: Router / controller / twig / react.

How to create a twig template TODO: Passing data from controllers. When/how to use View Composers. Where we ARE using view composers.

React guide TODO: Best practices for react components. Hooks. Redux for state from api. Mini-spas. routes file. Router. queries.ts. Redux guide. Formik guide. Storybook.

Laravel Guide TODO: Highlight of Laravel features we're using.

Talent Cloud Features TODO: Details on our Skill Model, on how Jobs are worked on / status changed, the HR / Manager comment feed, when do we send emails. Maybe this should be split by portal.

Authentication TODO: Default Laravel model. Our changes to middleware. How 2-factor works. How API auth works.

Authorization Models TODO: permissions

Admin Guide TODO: How to edit/add pages to Admin portal? Common gotchas?

Resources

VS Code Extensions

Useful software

Recommended reading