engineering-stream-hackathon / challenge

Engineering stream problem statment, requirements and expectations
https://engineering-stream-hackathon.github.io/challenge
0 stars 1 forks source link

Bookmark and url shortening

Problem statement

Our organization is going through a digital transformation phase. During this journey, we have created several digital components across various platform(like micro services, widgets, documentations, monitoring dashboards etc).

The easiest way to have the references of all these components is through bookmarks. However, bookmarks has to be imported and exported inorder to share it with any one like a new joiner. In bookmarks, you cannot detail more about what these bookmarks are about by providing additional information through short description or an image(s) or customized icons(s).

Bookmarks are not centralized. Even if you try to centralize it by exporting them and storing in a repository, every time a url is changed or added or removed all the people have to re-import those bookmarks from the centralized repository. It also becomes complex when you already have bookmarks and then importing could result in overlapping.

It also becomes hard when we want to share many such lengthy urls such as kibana dashboard urls. A shorter url will become easy to share in this case.

Requirements and goals

Our system should meet the following requirements:

Functional requirements

Non-functional requirements

Extended requirements

Technology stack

Java

.Net

Python

What are you suppose to submit ?

:pushpin: NOTE: We will let you know in advance if there are any other additional things we would require

How are we planning to evaluate ?

Documentation

We will be checking a lot of detailing about the solution for functional, non-functional and extended requirement along with options where ever applicable and why did you choose a specific solution from the various options. This will show how well you have understood the problem, how have you studied the various components and how did you evaluate a specific solution. Can you take a step ahead with docsify and gh-pages?

RESTful API

We will be checking how well you have designed your RESTful api and how much of the global standardization have you adopted. Your APIs will be validated against swagger checker.

Readable

We write code not for machines to understand but for another contributor to understand and contribute. Format them well with a definite code style like google style guide.

Testable

How well you have written tests with test pyramid. Are you following TDD or BDD approach? You commit will show what kind of approach you are following. The approach of TDD will generally include test along with production code. TESTS ARE NOT FOR COVERAGE.

Commit and commit message

A good developer always makes incremental commits with meaningful commit message for helping other collaborators to back trace though commit message. DO NOT JUST MAKE ONE COMMIT.

Quality

How do you automate the quality checks of your code and make the reports available in terms of violations and code coverage. Failing fast is one of the key aspect that helps in delivering a software in agile. How do you help in failing fast and help deliver quality code.

CI\CD

How have you automated your code to be compiled, tested, verified for quality and deployed. You would have to choose from the following options:

How to submit?

You will have to submit your project through github

  1. Go to https://github.com/engineering-stream-hackathon/challenge/issues/new/choose

    Get Started For Submission

  2. Click on

    Get started

  3. Fill in the details. Refer Details of the issue template for submission

  4. Submit new issue

    Submit new issue

Details of the issue template for submission

A sample template looks like below:

Sample Form

My project details

The format of this file is in yml, hence ensure you have maintained strictly in this format. The issue template suggests some examples. Following is the description:

Property Description
employee.name Your name as in SOCGEN
employee.githubUsername Your GitHub's username
project.appUrl The url of the app hosted in cloud
project.documentationUrl The documentation url. You can also point to the README or some hosting gh-pages etc which has the details as mentioned
project.openApiUrl The open api specification url. You can either host it in public cloud server or point to the json file.
project.monitoringUrl The url of the monitoring dashboard
repositories[0].name The name of the repository
repositories[0].githubUrl The GitHub url of the project
repositories[0].[travis\cirlcle]Url The travis-ci or cirle-ci url of this repository
repositories[0].codacyUrl The codacy url of this repository
repositories[0].coverageUrl The codecov url of this repository

:pushpin: NOTE: Since repositories is a list you can submit multiple repositories in case you have different ones for frontend and backend

Have you given access to engineering-stream-bot ?

  1. Go to Settings of your repository

    Settings

  2. Click on Invite teams or people

    Invite teams or people

  3. Search for engineering-stream-bot

    Search for engineering-stream-bot

  4. Give Admin role

    Admin role

Contacts

Connect with us through Gitter