Code Monkey home page Code Monkey logo

service-ui's Introduction

UI service for Report Portal

License stackoverflow

Build Code Coverage GitHub release (latest SemVer) Docker Pulls

  1. Install nodejs (version 20 is recommended)

  2. Open console from the project root

  3. Run the command cd app

  4. Run the command npm install --legacy-peer-deps or npm ci --legacy-peer-deps

  5. Create file .env in app folder

PROXY_PATH='' // http://you_server:port/
  1. Run command npm run dev

  2. Open http://localhost:3000/ in browser

service-ui's People

Contributors

aleksandraivleva avatar amsterget avatar andrei-bulagin avatar andrew-omelchenko avatar artsiomyeliseyenka avatar attila-batky-epam avatar avarabyeu avatar bam6ycha avatar bkushnir avatar blazarqso avatar chivekrodis avatar devpls avatar discoelevator avatar hardnorth avatar hlebkanonik avatar katrin-kot avatar katsiarynatatarynovich avatar maria-hambardzumian avatar norbert-csaba-herczeg-epam avatar pbortnik avatar raikbitters avatar renkyoji avatar richard-jakab-epam avatar ruslanlyubimov avatar stanlaktionov avatar tamas-levente-szucs-epam avatar tr1ble avatar tritseratops avatar twinfreaks avatar vadim73i avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

service-ui's Issues

Obsolete animation of widgets

Hello!

Several widgets suffer from the same flaw of blinking/repainting once in several seconds even if no changes actually occured (no new launches have recently been finished). A couple of examples are "launch statistics line chart" and "launches duration chart".

Though this bug is minor, it's pretty nasty. An open dashboard keeps diverting your attention for no reason. Meanwhile when it should attract your attention (new finished launch caused widget update?) - it does not.

Please fix this! Thank you!

Links recognition in log messages with markdown mode

Links recognition in log messages behaves incorrectly on some circumstances when using markdown mode.

Steps to reproduce:

  1. Create a log message within a test item with this text:
    !!!MARKDOWN_MODE!!! `CODE` 'https://anywebsite.com'
  2. View the parent test item using UI.

Expected result: UI dislpays the log message in markdown mode with [CODE] block rendered as code and anywebsite link rendered as a link embraced with single quote characters.

Actual result: the right-side single quote near the link is transformed into HTML character code 039 and becomes part of the link.

This behavior probably affects other symbols apart from single quote as well, but I haven't investigated.

Cannot enter password longer than 25 characters

The Password field on the log in screen is limited to 25 characters. This makes sign in impossible in case I have a password that is longer than 25 chars. In my case, the account is linked to a Windows domain and the password set in the domain was 32 chars. I had to change the password for the domain account.

Would you mind removing or at least significantly increasing the password length limit on the sign in screen?

The "START TIME" in Launches table haven't been i18n but use RU instead

Hello,

Thanks for you localization and I try to get a Chinese version for i18n. However, i found that the "START TIME" haven't been written in localizations folder(en-EU.js or ru-RU.js), and it use Russian instead. Coud you please add the keyword into localization file so that we can have it translated.

image

image

Opening report portal login screen may stuck

Opening report portal's login screen may stuck and takes a lot of time. To reproduce this bug you need to clear browser's cache.

Steps to reproduce:

  1. Clear browser's cache (for example, in chrome: history -> clear history -> remove images and other files from cache)
  2. open https://dev.reportportal.io/ui/#login

Expected result:
Login page should be open immediately

Actual result:
Browser stuck and wait more that 1 minute to open the page
Console contains errors. See screenshot

Снимок экрана 2019-12-11 в 17 42 21

Minor UI table fixes.

table minor changes
1 - alignment to center (relative other text columns)
2 - move to up, to decrease table header field size
3 - add a horizontal separator for better readability
4 - table is not resizable when zoom up

Widgets button on "Launches" tab

The button is present on two screens. I don't understand why.
For dahsboard screean - i totally agree, but for "launches" tab, it overload UI interface.
If this button needed on launches tab - then it should provide create widgets by current filter
2016-11-23_11-39-54

anybody?

50 dashboards limitation when adding widget

When having more then 50 dashboards the following fails:

  1. Adding new Dashboard - no problem
  2. Adding a new widget to dashboard - fails as it show you the list of the 50 dashboards to choose where to add widget to.

Please note that this fails only when the dashboard is created afterwards and after deleting some of the dashboards to be less than 50, all is good

seems like that when onAddWidget is called, when dashboard are searched it searches using the fefaukt filters of one page the size of 50
I suggest changing it to looping to have all dahboards

Issues in spinning up report portal instance in OpenShift.

Hello ReportPortal team,
We are currently working on spinning up an RP portal instance in our environment in OpenShift.

The key difference between our setup and the default Ingress way is that we have an NGINX proxy server in front of our cluster.
The location in the NGINX server dedicated to the RP instance is /rpportal, which proxies all the requests to OS Routes. Due to this /ureport location, all the routes in the frontend app should also have a /rpportal prefix.

We tried to define a "homepage" property in the package.json file, and manually specify this prefix in the routes inside of the /app/src/routes/routesMap.js file.
Unfortunately it did not work - we keep getting HTTP codes 302 and 307 when we access the UI.

Can you let us know of the correct procedure to define a url prefix in the code?

The page title should change as you navigate the site

When using Report Portal in multiple tabs, it's impossible to determine which tab is which:

image

This would be much more usable if those tabs were titled...

  • Report Portal: All Launches
  • Report Portal: nightly-tests #​123
  • Report Portal: Test A
  • Report Portal: Test B

Better visual areas determination for filters and tables.

Pls add better determination two visual areas - because it displayed mingled together - and very difficult to understand on first look
2016-11-22_14-35-03
I mark regions in different colors. User must immediately understand where the table and where table filtering

subpath support

Hi,

I would like to run reportportal on a subpath (e.g. /reportportal). I'm using kubernetes and have other applications that need to co-exist so I can't use the root path.
I can configure the ingress rules but it seems that the UI is expecting to be hosted at /
Any guidance as to how I would go about configuring the service-ui to work at a subpath?

Regards

Colm A

Device Statistic widget used in testing

First, thank you for this very helpful tool. I find it very useful when I run my automation test. As I basically started to use the tool, the available widgets are very good however I am missing one type of widget.

Is there a possibility to have a device/browser information displayed on my dashboard ? Like a widget? That would be very cool to have.

Many thanks!

Is it possible to customize test results page to include additional attribute from test parameters

Currently test result page has the following attributes:
Method Type
Name
Status
Start
Defect Type

I wanted to add one more attribute relevant to each tests - 'Number of assertions'. This value is available for each test in 'Test Parameters'. Is there a way to customize the reportportal ui to include a new attribute in test results.

OR

Can I change the name and value of any of existing attribute, to reflect the new attribute that I need?

History view broken

  1. Button is hidden to load more items
  2. Loading state after click on button

Issue is reproduced in build: 3.0.5

history_view_broken

LDAP user search filter field length

Hi, i try set up ReportPortal with ldaps and cannot write user search filter rule more than 128 symbols. Is it possible to extend this field ?

[Widget] Responsive design issue

As you can see on attached screenshot, there's an overlap between axis X labels.
You can easily reproduce it by creating a 7+ bars Launch statistic chart widget and reducing a window.

RP version - 4.3.0
Browsers - Chrome 77, Edge 44

image

Component Health Check - Cumulative VS Latest

Need ability to show the latest reports instead of cumulative reports from all launches

Eg)
Screenshot:
Screen Shot 2022-06-10 at 1 15 21 PM

Note:

  1. All Launches are required to show all the components in a system - APIComponent is one of the levels - I definitely need all launches to show all the components
  2. But all launches sums up all the runs - I need a way to show only the latest run (latest buildNumber) -> Is there a way to do this ?
  3. If latest launch is selected - only the latest component is displayed (not all components are displayed) See picture below

Screen Shot 2022-06-10 at 1 59 07 PM

The test method history panel shows items which have same name but belongs to the different testsuite

Describe the bug
The history panel in the UI for a particular test shows also the results of all other tests from the same launch even though they are under different test classes. This happens only when I use jUnit5 client. When I upload junit xml manually via UI (as zip file with JUnit files), it works as expected (for a particular test method, it shows items in the history panel only which has the same testsuite name [see the image in the Expected behavior section]).

e.g.
I have 4 test classes (testsuite name)

DynamoDbSinkConnectorITCase
SftpSinkConnectorITCase
FtpsSourceConnectorITCase
FtpsSinkConnectorITCase

image

and all have the baseConnectorSmokeTest test method. (and also before/after methods)

When I upload test results via agent-java-junit5, and look at the latest test (FtpsSinkConnectorITCase > baseConnectorSmokeTest), I see (in the history panel) others baseConnectorSmokeTest items from that launch (and previous launches) which is incorrect because they belong under a different test suite name.
image
There should be only two items, one from launch #2 and one from launch #3.

Also, after that, if I click on one of those incorrect items (and it would be a failed test with a test log), it will show me a log that belongs under a different test suite because the path is not updated in the UI.: (selected test item and shows information is actually under SftpSinkConnectorITCase testsuite but the UI still shows FtpsSinkConnectorITCase)
image

Expected behavior
I should see there history across launches but only for baseConnectorSmokeTest which is under FtpsSinkConnectorITCase test suite. (not all with the same name with different parent item [testsuite])
When I upload the same test run manually ( via a UI as zip file with JUnit files), I see there history correctly (only one item from launch #1 and one from #4):
image

Dependency versions
agent-java-junit5:5.1.4
JUnit version: 5.8.2
RP version: API Service: 5.6.3; Authorization Service: 5.6.3; Service UI: 5.6.0;

(I don't know if the root cause of this issue is in UI or in the java / java-junit5 client so I have posted it here )

Cannot set environment variables for consul/registry host and port

I am deploying within a Kubernetes cluster and we are currently stuck with version 1.14+ on the server side. I know that there is an alpha fix in kubernetes 1.18 to allow for environment variables to be set within the borne shell that utilize periods / dots in their name. Right now, there does not seem to be a work around with our situation and I am having difficulty working out what file could be used to override / set these variables.

I had attempted to create a /public/.env file with the appropriate values within it for the service-ui service however, these values are not being picked up by the environment or the application at startup. When I shell in I can see some of the variables that I had set that do not contain the period / dot in the name as being set in the environment.

Is there a method to set the variables and have them read as a part of the main.go process? If so, what file is needed and what values are supported there?

Thanks,
Scott

Dashboard Scroll Issue which hampers UX

What is the Issue ?

Apparently on visiting the dashboard which contains n number of widgets, the user is not able to scroll till the end of the page properly. This hampers the experience for the users as the user is not able to properly edit the widgets that are at the last.

How to Reproduce

Actual Output

Screenshot 2023-01-31 at 10 12 27 AM

Expected Output

User should be able to scroll down smoothly till the bottom

Video

edit_version_bug.mp4

Cannot access login page: 307 redirection error

Hello,

we installed v5 reportportal helm chart, we have everything up and running in our cluster.
The problem is when we want to access the login page: IP/ui, is redirecting continuously and we receive network error.

More details below:
issue1
issue2
issue3

In the last screenshot you can see that there is no output on the current version regarding the services that are running: e.g: ui, api...

I access also directly the pods with the port but no help, still redirecting.

Thank you,
-Ionut

make get-build-deps is failing

Hi Team,

Im trying to build service ui using dockerfile-full and getting the below error. the get-build-deps task in makefile is failing. Below is the error:

` > [build-backend 4/7] RUN make get-build-deps:
#13 0.250 curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b "/go/bin" v1.36.0
#13 0.383 golangci/golangci-lint info checking GitHub for tag 'v1.36.0'
#13 0.782 golangci/golangci-lint info found version: 1.36.0 for v1.36.0/linux/amd64
#13 4.090 golangci/golangci-lint info installed /go/bin/golangci-lint
#13 4.099 go get github.com/avarabyeu/releaser mvdan.cc/gofumpt/gofumports
#13 6.272 go: downloading mvdan.cc/gofumpt v0.2.1
#13 6.483 go: downloading github.com/avarabyeu/releaser v0.0.0-20170822143458-d7f1dd74c9f0
#13 6.562 go get: module mvdan.cc/gofumpt@upgrade found (v0.2.1), but does not contain package mvdan.cc/gofumpt/gofumports
#13 6.565 make: *** [Makefile:30: get-build-deps] Error 1

executor failed running [/bin/sh -c make get-build-deps]: exit code: 2`

Please help me with this

No way to filter items by tags they do not contain

Hi guys!

Imagine our situation: 1500+ of automated web service tests.

After some launch we find out that 300 tests have failed. So we open up the list of failed tests and see that almost all of the tests on the first page have a specific tag "TAG_1" attached which denotes some part of the product functionality that the tests involve.

But we are professionals, so we must make sure that all of the 300 failed tests have failed for the same reason!

So we click on that "TAG_1" to filter all other failed tests out, than we scroll down to the bottom of the page (since it's the only place on tests lists page that shows the total count of displayed items) and see "1 - 50 of 296"... Wow, wth...! So we scroll back to top, remove the "TAG_1" from the filter, (best part starts here) open up Chrome's search dialog via CTRL+F, manually type in "TAG_1" and start visually searching for items where it's missing. So much fun. Sooner or later after going through a couple of pages we finally see a failed test without our beloved "TAG_1", but it contains "TAG_2". So we click on "TAG_2" and get "1 - 1 of 1"... Ok, let's go back... And so on.

So please add filtering by "not contains" for tags. The situation I've just described keeps happening pretty often.

Thank you a lot! :)

Layout issue

  1. Open tab 'Launches'
  2. Press down on mouse wheel on first record and move cursor to area with grey background (right side)
    normal_view
    actual_view

Additional information:
window.screen.availHeight - 864
window.screen.availWidth - 1536
Browser - Chrome Version 60.0.3112.90 (Official Build) (64-bit)
Report Portal - Build: 3.1.1

Test-case related widget don't support test-related filters

I find it weird that the widgets don't support it.

E.g. I'd like to create a failure trend chart which would only show number of failed tests matching certain criteria, e.g.

(to get the trending chart of UI failures):
Failed test case trend where: launch-name == "foo" and testcase-name ~ "ui/"

.. so far i can only apply launch metadata filter. I don't see any valid argument for such limitation.

Surface Defect Comment in UI from Launch view

After a launch completes, it would be helpful if there were a view at the launch level to show all the defect comments associated with failures encountered from a given launch. This would enable users to quickly determine from the launch which known issues were found during a run. Currently, the only way to gather such information is to create a filter for a test suite that includes "defect comment".

Is there some mechanism available to surface defect IDs (comments) to the launch view?

Launch name for widget have unexpected rule

I can't add launch name for "Most failure test-cases table" widget, because launch name length should be more equal three. This rule is not used on launch creation, so I have launches with name like "IR".
My launches:
screen shot 2017-03-27 at 3 34 25 pm
Try to add launch to widget:
screen shot 2017-03-27 at 3 34 42 pm

username and password in clear text in form data POST to uat/sso/oauth/token

when trying to login into the UI, I see the username and password in clear text in the form data being posted to uat/sso/oauth/token. I thought this was fixed somewhere in the previous version. Is this expected behavior? Please see screenshot. Any guidance on how to avoid exposing creds in clear text is much appreciated.

I believe this is the line of code that is contributing to this behavior:

password: payload.password,

Screen Shot 2019-09-10 at 2 02 42 PM

Opening testcase after filtering it with "filter.cnt.name=/foo" returns error

The item can't be opened. All I get is a message:

Item is not found
Failed to load data for launches table

after removing the the problematic filter portion of the URL (&filter.cnt.name=%2Ffoo), it works.

steps to reproduce:
have test cases with / in name (e.g. fooTestClass/foo/test_1)
now try to filter only those with /foo in the name:
Filter name cnt: "/foo"

Click on any of the filtered test case.

Inconsistent behavior of dropdown lists.

Different kinds of "Default Properties for Issue Form" dropdowns (the regular ones and the ones with a search box) on BTS settings page demonstrate inconsistent behavior: the regular ones submit valueName as a default value for a field even if valueId is defined, and the ones with a search box submits valueId no matter if it is defined or not.

This inconsistency is the cause of the issues reported as reportportal/service-rally#4 reportportal/service-rally#6.

I would propose to implement the following approach: use valueId as a field value if available, otherwise fallback to using valueName. Are there any drawbacks of such approach you could think of?

Example of Problematic Behavior

Consider one requests Rally integration in project settings. After specifying all the configuration details, the following request will be made to determine the fields set:

GET http://localhost:8080/api/v1/superadmin_personal/external-system/%external_system_id%/fields-set?issuetype=BUG

[
    // Renders as a regular dropdown.
    {
        "definedValues": [
            {
                "valueId": "/flowstate/10000000000",
                "valueName": "Pre-Defined"
            },
            {
                "valueId": "/flowstate/10000000001",
                "valueName": "Defined"
            }
        ],
        "fieldName": "Flow State",
        "fieldType": "FlowState",
        "id": "FlowState",
        "required": true
    },
    // Renders as a regular dropdown.
    {
        "definedValues": [
            {
                "valueName": "Pre-Defined"
            },
            {
                "valueName": "Defined"
            }
        ],
        "fieldName": "Schedule State",
        "fieldType": "string",
        "id": "ScheduleState",
        "required": true
    },
    // Renders as a dropdown with a search box, as more than 10 definedValues are returned.
    {
        "definedValues": [
            {
                "valueId": "/iteration/10000000002",
                "valueName": "2017.Q2.7"
            },
            {
                "valueId": "/iteration/10000000003",
                "valueName": "2017.Q4.4"
            }
            // 9 more objects.
        ],
        "fieldName": "Iteration",
        "fieldType": "Iteration",
        "id": "Iteration",
        "required": false
    },
    // Renders as a dropdown with a search box, as more than 10 definedValues are returned.
    {
        "definedValues": [
            {
                "valueName": "Code Change"
            },
            {
                "valueName": "Content Change"
            }
            // 9 more objects.
        ],
        "fieldName": "Resolution",
        "fieldType": "string",
        "id": "Resolution",
        "required": false
    }
];

The form will look as below, "Iteration" and "Resolution" are dropdowns with a search box, and the rest are regular ones:
Default Properties for Issue Form

Ones trying to submit some new default values:
Default Properties for Issue Form

This ends up with the following request:
PUT http://localhost:8080/api/v1/superadmin_personal/external-system/%external_system_id%

{
    "accessKey": "%access_key%",
    "fields": [
        {
            "definedValues": [
                {
                    "valueId": "/flowstate/10000000000",
                    "valueName": "Pre-Defined"
                },
                {
                    "valueId": "/flowstate/10000000001",
                    "valueName": "Defined"
                }
            ],
            "fieldName": "Flow State",
            "fieldType": "FlowState",
            "id": "FlowState",
            "required": true,
            "value": [
                "Defined" // Note valueName is passed, though valueId's are defined for this field.
            ]
        },
        {
            "definedValues": [
                {
                    "valueName": "Pre-Defined"
                },
                {
                    "valueName": "Defined"
                }
            ],
            "fieldName": "Schedule State",
            "fieldType": "string",
            "id": "ScheduleState",
            "required": true,
            "value": [
                "Defined"
            ]
        },
        {
            "definedValues": [
                {
                    "valueId": "/iteration/10000000002",
                    "valueName": "2017.Q2.7"
                },
                {
                    "valueId": "/iteration/10000000003",
                    "valueName": "2017.Q4.4"
                }
                // 9 more objects.
            ],
            "fieldName": "Iteration",
            "fieldType": "Iteration",
            "id": "Iteration",
            "required": false,
            "value": [
                "/iteration/10000000003" // In contrast to FlowState field, valueId is passed instead of valueName.
            ]
        },
        {
            "definedValues": [
                {
                    "valueName": "Code Change"
                },
                {
                    "valueName": "Content Change"
                }
                // 9 more objects.
            ],
            "fieldName": "Resolution",
            "fieldType": "string",
            "id": "Resolution",
            "required": false,
            "value": [
                ""  // Empty string is passed as no valueId's are defined for this field.
            ]
        }
    ],
    "project": "%bts_project_id%",
    "systemAuth": "APIKEY",
    "systemType": "RALLY",
    "url": "%rally_url%"
}
{
    "msg": "ExternalSystem with ID = '%external_system_id%' is successfully updated."
}

And after that, the form gets redrawn, note that "Resolution" default value is missing:
Default Properties for Issue Form

[v5.0.0-RC-3] UI doesn't open/show video and log attachments

Some attachments with a content type like log or video don't show correctly in the UI.
I assume that some Content-Type HTTP headers are not being processed correctly by UI
Content-Type: text/x-log
Content-Type: video/mp4
but
Content-Type: image/png - works as expected

For example,

  1. Video file
    Screenshot 2019-12-03 at 2 49 26 PM
    It doesn't open in attachment UI, but can be downloaded via curl and open by some video player:
$ curl 'https://reportportal.example.com/api/v1/data/mobile/NC8zMzYvOGEvYzYvYjkvY2EtMTQ2My00NDcxLWIxYWYtYjM0OWZiOTFkNGI2L2JpbmFyeV9wYXJ0LnBuZw' -H 'Connection: keep-alive' -H 'Pragma: no-cache' -H 'Cache-Control: no-cache' -H 'Accept: application/json, text/plain, */*' -H 'Authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NzUzNzczNjUsInVzZXJfbmFtZSI6InN1cGVyYWRtaW4iLCJhdXRob3JpdGllcyI6WyJST0xFX0FETUlOSVNUUkFUT1IiXSwianRpIjoiYTExMDdkOTAtN2U5OC00ZTU4LTk5ODgtNmViYjgwNGU4OWVhIiwiY2xpZW50X2lkIjoidWkiLCJzY29wZSI6WyJ1aSJdfQ.W0UcwgpBl9RR2Hk7HYDXp6-BY9nc7w3it4gK8JIoTNE' \
--compressed > attachment.mp4
  1. Log text file
    Screenshot 2019-12-03 at 2 24 54 PM
    Screenshot 2019-12-03 at 2 25 02 PM

Element for setup entries count per page

I. Blinking effect:
When click to control -> page size has changed (see bottom footer) - because input box is presented. Clicking should not affect to page size
blink effect

II. Usability:
2016-11-22_23-45-57

  1. Click on control
  2. Input box presented with empty value
  3. Input box should contains value == 100, when press "Esc" button -> changes should not applied

III. Unable to click - when zoom changed >= 200%
Browser Chrome: 54.0.2840.99 m (64-bit)
2016-11-23_2-21-44

The default count of the results includes a test classes.

image

image

Select Method Type -> Test Class
image

TestNG XmlTest.class is a repository of test classes and not a test method.
Example:

    protected void addTestPackage(String name, XmlClass... classes) {
        XmlTest test = new XmlTest(this);
        test.setName(name);
        List<XmlClass> classesList = new ArrayList<>();
        Collections.addAll(classesList, classes);
        test.setXmlClasses(classesList);
    }
public class AdminApiSuite extends BaseTestSuite {
    public AdminApiSuite() {
        super("Admin API test suite");
        addTestPackage("Common",
                new XmlClass("<class path>")
        );
    }
}

There should be no use of "test packages" in the counting results for the tests.

[Firefox] Close Icon is very big after selecting a Launch

Steps:

  1. Open RP in Firefox(Reproduced for 76.0.1)
  2. Go to any project
  3. Check/Select one launch

Actual:
Close icon is filling the whole screen
изображение
Expected:
Close icon is small

Current version:API Service: 5.2.1;Index Service: 5.0.7;Authorization Service: 5.2.1;Service UI: 5.2.0;
Not reproduced in chrome.
Reproduced in firefox.

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.