Giter Club home page Giter Club logo

roadie-backstage-plugin's Introduction

Roadie technical test

Welcome to this stage of your interview process! This should be the fun part of the recruitment pipeline. Finally getting hands dirty with Backstage codebase!

We expect this to take no more than 4 hours. Don't worry if you don't finish all the suggested features in that time frame.

Please work alone. Feel free to use Backstage documentation or other written resources, just like you would if you were doing this at work.

Do not be afraid to ask questions at any point in the process. You can do so by creating issues to this GitHub repository we have provided for you.

Submitting your work

Please submit your work by committing to this repository. You can email us or create an issue into the repo when you are finished, and we will then start looking at your contribution.

Evaluation criteria

We evaluate your based on the commits you make to this repo and how you evolve your solution over time. To be able to do this, we expect you to commit regurarly in intervals of no longer than 15 minutes. Don't worry if the particular commit has temporarily broken something, it is more important for us that we see your thought process and approaches you take to solve particular problems than the actual final solution. Remember to write somewhat descriptive (but not too onerous) commit message as well.


Roadie Interview Assignment

We'd like you to create a hypothetical issue tracker plugin for backstage.

We've provided a Backstage instance with a partially complete backend for this plugin within this repository. You will need to create the frontend plugin, integrate this with the backend and add a feature. You might need to enhance the backend plugin as well for it to return all needed data for you.

The API is structured as follows.

GET /projects
GET /projects/:id
GET /projects/:id/issues
GET /issues
GET /issues?projectId=
GET /issues/:id

For example:

curl http://localhost:7000/api/ticketing/projects/1/issues
[
  {
    "id": 1,
    "type": "bug|story|task?",
    "title": "Issue 1",
    "description": "asdf",
    "status": "open|resolved|inprogress",
    "assinged_to": "",
    "created_by": "",
    "created_at": "",
  },
]

Getting started

Prerequisites: You should have node.js and yarn installed on your machine. Along with git of course.

To get started, you'll need to:

Desired features of your plugin

Please implement the following features in your issue tracker.

  • There is an InfoCard on the overview page which shows summary stats for the project

    • Open or in progress issues by type
    • Issues assigned to the current user ?
  • Component entities in Backstage with the type 'service' should have an 'Issues' tab which displays a table of issues.

  • The table should contain issues only for one project. The project ID should be read from an annotation on the entity.

  • The table supports filtering issues by multiple fields at once.

  • The user can click on an issue and view a page for that issue which includes any comments on that issue.

  • The user can add comments to that issue.

  • There must a meaningful test (full/high coverage is not expected)

Helpful Backstage definitions

  • An Entity is an item in the Backstage software catalog.
  • There are different kinds of entities. A Component entity is a piece of source code. A Resource Entity is usually a Cloud resource like S3 or a Kubernetes cluster. An API Entity is a programmable interface. More info here.
  • Component Entities each have a page in the software catalog which is dedicated to it. For example, there is a sample-service-1 entity in our demo deployment of Backstage.

References

roadie-backstage-plugin's People

Contributors

livelikecounter avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.