Giter Site home page Giter Site logo

zebrunner / reporting Goto Github PK

View Code? Open in Web Editor NEW
208.0 27.0 44.0 147.22 MB

Zebrunner Reporting Tool

Home Page: https://zebrunner.com/documentation

License: Apache License 2.0

Shell 100.00%
automation testing qa java reporing junit testng selenium appium video-recordings

reporting's Introduction

Feel free to support the development with a donation for future improvements.

Zebrunner

Zebrunner Reporting is a test automation management tool that accumulates and represents test results. It is designed to increase the transparency of automation, providing detailed reports with test logs, screenshots and video recordings of test sessions. Detailed reporting functionality reduces maintenance work for automation teams, allowing to identify application bugs and fix them earlier in the release cycle.

Enjoy using Zebrunner Reporting in your testing process!

Zebrunner Insights - premium reporting features for your tests. See test results in real time - Zebrunner records interactive video sessions, publishes logs and screenshots. Track your pass rate, infrastructure usage, and automation team performance in one application.

Zebrunner Guard - your data and users will be safe with our enterprise-grade security and centralized administration. Due to the flexible permission management, you can limit access to certain information and keep the workflow steady.

Core features

  • Real-time test results tracking via websockets
  • VNC streaming and video recording of test sessions
  • Flexibly configured widgets and dashboards
  • User management with authorization policies
  • Integration with TestRail and JIRA
  • Integration with Slack
  • Ability to compose automation reports and send via email
Configurable dashboards Integrations with multiple services
Real-time test results Live streaming and video recording
Test issues tracking

Repositories structure

Zebrunner Reporting server side consists of the following modules:

Zebrunner Reporting client side repositories:

Prerequisites

Hardware requirements

Requirements
Operating System Linux Ubuntu 16.04, 18.04, 20.04
Linux CentOS 7+
Amazon Linux 2
CPU 4+ Cores
Memory 16Gb RAM
Free space SSD 64Gb+ of free space

Installation steps

  1. Install Docker Engine and Docker Compose.
  2. Clone this repo recursively and launch setup process:
    git clone --recurse-submodule https://github.com/zebrunner/reporting.git && cd reporting && ./zebrunner.sh setup
    

    Provide required details and start services.

  3. Start services ./zebrunner.sh start
  4. Open http://hostname:port or https://hostname:port for secured protocol

    Login using admin/changeit credentials

Follow installation and configuration guide in Zebrunner CE to reuse Reporting components effectively for Test Automation.

Documentation and free support

License

Code - Apache Software License v2.0

reporting's People

Contributors

ageenkooo avatar apgorobets avatar avabishchevich avatar brutskov avatar danymill avatar hursevich avatar ilya-varchenya avatar maksimsarychau avatar mikitamasukhranau avatar nazarenkav avatar nsidorevich avatar qps-ua-ykarotkin avatar saurabhlondhe avatar sergeizagriychuk avatar sergeybrenko avatar tsvrko avatar vdelendik avatar verma-rajatk avatar vmartseniuk 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  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

reporting's Issues

Known bug isn't recognized due to different devices

Improve widget's placement on board

Currently we have ability to specify only size (S/M/L) and position of the widget on board.
I'd like to have ability to specify placement on my own for each widget.
so instead of size and position have square details only.
Board should read this coordinates and place widgets onto the right position.

I'm fine with entering coordinates manually from the beginning, maybe with logic to verify that there is on overlap

Add functionality "remember me"

It will be better to have functionality, which can remember user after first authorisation, then user open zafira through 2-3 days he doesn't need to make authorisation again

Separate button for running SQL query on-demand.

Low priority, but just think about it.
Is it possible to add a separate button on main pane for running specific SQL (it can even stored as "widget")?
In most cases widgets grab data from DB Views that need to be refreshed from time to time. Usually it's done as Jenkins job executed from time to time. But when you do rebuild of failed test and you want to see refreshed data asap instead of waiting for 15-30 min.

Redirect user to original page after successful logging in

After logged out user opens some link in zafira (e.g. test run page) he's proposed to log in before viewing the page.
But after user logs in he sees zafira home page (dashboard page) instead of original page he was pointed to (test run page). As a result he needs to find and open zafira link once again to get appropriate page. This is really not comfortable and should be improved I think

Case when 2 similar testcases were registered should be handled correctly

[2017-02-27 15:32:13{UTC}] [ERROR] [http-bio-8090-exec-249] [c.q.z.s.a.ServiceExceptionAspect] [Got exception when calling [TestCase com.qaprosoft.zafira.services.services.TestCaseService.createOrUpdateCase(TestCase)]]
com.qaprosoft.zafira.services.exceptions.ServiceException: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), bu
t found: 2
at com.qaprosoft.zafira.services.aspects.ServiceExceptionAspect.rethrowException(ServiceExceptionAspect.java:26) ~[zafira-services-2.0.jar:na]
at com.qaprosoft.zafira.services.services.TestCaseService.getTestCaseByClassAndMethod(TestCaseService.java:39) ~[zafira-services-2.0.jar:na]
at com.qaprosoft.zafira.services.services.TestCaseService.createOrUpdateCase(TestCaseService.java:58) ~[zafira-services-2.0.jar:na]
at com.qaprosoft.zafira.services.services.TestCaseService$$FastClassBySpringCGLIB$$136027d2.invoke() [zafira-services-2.0.jar:na]
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) [spring-core-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:720) [spring-aop-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) [spring-aop-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) [spring-tx-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:280) [spring-tx-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96) [spring-tx-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [spring-aop-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655) [spring-aop-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at com.qaprosoft.zafira.services.services.TestCaseService$$EnhancerBySpringCGLIB$$626a91e4.createOrUpdateCase() [zafira-services-2.0.jar:na]
at com.qaprosoft.zafira.ws.controller.TestCasesController.createTestCase(TestCasesController.java:81) [classes/:na]
at sun.reflect.GeneratedMethodAccessor585.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_80]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_80]
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) [spring-web-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) [spring-web-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114) [spring-webmvc-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) [spring-webmvc-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) [spring-webmvc-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) [spring-webmvc-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) [spring-webmvc-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) [spring-webmvc-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) [spring-webmvc-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872) [spring-webmvc-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) [spring-webmvc-4.3.2.RELEASE.jar:4.3.2.RELEASE]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) [tomcat-embed-websocket-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) [tomcat-embed-core-7.0.52.jar:7.0.52]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) [tomcat-embed-core-7.0.52.jar:7.0.52]

....................

Caused by: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:79) ~[mybatis-spring-1.3.0.jar:1.3.0]
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:447) ~[mybatis-spring-1.3.0.jar:1.3.0]
at com.sun.proxy.$Proxy33.selectOne(Unknown Source) ~[na:na]
at org.mybatis.spring.SqlSessionTemplate.selectOne(SqlSessionTemplate.java:167) ~[mybatis-spring-1.3.0.jar:1.3.0]
at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:63) ~[mybatis-3.2.3.jar:3.2.3]
at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:43) ~[mybatis-3.2.3.jar:3.2.3]
at com.sun.proxy.$Proxy56.getTestCaseByClassAndMethod(Unknown Source) ~[na:na]
... 86 common frames omitted
Caused by: org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 2
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:66) ~[mybatis-3.2.3.jar:3.2.3]
at sun.reflect.GeneratedMethodAccessor151.invoke(Unknown Source) ~[na:na]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_80]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_80]
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:434) ~[mybatis-spring-1.3.0.jar:1.3.0]
... 91 common frames omitted

Add status "blocker"

Currently we can marke results how "paased", "failed" , "known-issue"
But sometime we find critical bug - blocker, I think will be better to add new status for result "blocker - jira_id". Status we can get from jira ticket, also we can get more info from jira ticket such as severity.
I think we can pay attention when we can't do something when we send report to all team

Test run page is not refreshed after clicking on failed case "Mark as passed"

Steps:

  1. Open completed test run with some failed cases
  2. Click "Mark as passed"
    Actual: Page is not refreshed. User is still seeing current case as failed (red). Page need to be refreshed to see that failed case has become passed (green).
    Expected: Page is refreshed. Case marked as passed is actually "passed" (green)

Elapsed time reporting improvements

  1. Implement logic to keep/calculate/update test run elapsed time
  2. created separate field in test_runs table
  3. reuse this new value for calculating expected ETA on zafira test runs UI

be able not only rebuild but start new test from zafira using one click solution

Feature request na Zafiru
roy moya
1:27 AM
I have used is for test tracking it's good for reporting. As for features it's would be helpful if you could start test from there this way if Pedro or some other lead needs ma or aa tests for a hit fix they could just run it from there without having to ping any one
1:29
Maybe if it's just running on beta branch so we limit the times I can be run so we don't run up a big que of test runs

Also right stats for tests is only tracking who's ever name is on the config file so it's not show who really created the tests
1:31
Maybe if is show stats from git commits that would be more accurate as to who created which test

Add additional version to email report

1 . Enhance platform value inside email report
platform + platform_version
device
browser + browser_version

  1. Try to add this extended information into the email subject as well

Cross-Browser certification view: potential NPE when not all screens are uploaded to S3

SEVERE: Servlet.service() for servlet [dispatcher] in context with path [/zafira-ws] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException
at java.util.TreeMap.put(TreeMap.java:556)
at java.util.TreeSet.add(TreeSet.java:255)
at com.qaprosoft.zafira.ws.dto.CertificationType.addScreenshot(CertificationType.java:19)
at com.qaprosoft.zafira.ws.controller.CertificationController.getCertifcationDetails(CertificationController.java:69)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:317)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:169)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilterInternal(BasicAuthenticationFilter.java:158)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:121)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:331)
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

REGRESSION: rerun failures do not start not registered tests

All not registered tests due to the abort etc should be executed during rerun_failures.
It seems like in new zafira listener implementation we add to re-execution plan only those methods which have rerun flag as true. In additions we should execute also those methods which don't exist in previous run.

known issue tracker improvements (jira integration)

We really need smart integration with Jira.
Known issue tracker should analyze ticket status in jira and do not assign onto the closed items. For now we could omit real issue because previous ticket is resolved and closed but new problem appears in the same place with similar root cause (stack trace).

Also I recommend to think about tickets notification service to cover such variants:

  1. ticket is in resolved state, issue is not reproduced anymore
    ->add to default email report or send separate message/email that ticket can be closed
  2. ticket is already closed but issue is reproduced with the same exception
    -> warning message that potentially issue appeared again. We shouldn't mark failure as known issue in this case.

regular user doesn't have access to his performance report

It seems like additional verification for userId is not correct as only administrator can view performance user's dashboard.
If you login under regular user you have nothing in this board.
Steps:

  1. Login as regular user
  2. Open user's menu in top right corner->Performance
    -> empty board is displayed

Improvement for filter reset operation

From my point of view such filter reset improvements can be done:

  1. by default "Reset" link/button is disabled and grey
  2. as only you applied any filter including project selection in top left corner this link button is red and available
  3. as only you click reset it should reset filters. I also recommend to reset project selection too

zafira-ws/dashboards/email is broken

service for sending boards sends only 1st "General" board.
Commit which is deployed:
SHA-1: 4225524

  • Merge remote-tracking branch 'origin/master' into angular_migration

Conflicts:

sources/zafira-ws/src/main/webapp/WEB-INF/fragments/links.jsp

sources/zafira-ws/src/main/webapp/WEB-INF/views/tests/runs/index.jsp

reproduced on two projects

Fully operational jenkins integrator

I wanna have ability to start/restart jenkins jobs vie one click solution.
As prerequisites we should have a CI user on jenkins with ability to trigger jobs.
Zafira should be able to launch something via one click or later via re-run bot etc

#{currentUserName} for Tomcat authorization.

Wildcard #{currentUserName} does not return anything while being authorized as Tomcat user (not internal user created through Users tab) even if appropriate Zafira user exists with the same name as Tomcat user.

Zafira doesn't recognize encrypted values by Carina.

I'd like to encrypt username/password and use them in Jenkins as secured data (-Dzafira_username={crypt:TKYyas6FxxQwesr+QMbxWA==}). But these values couldn't be decrypted and data is not stored in Zafira during Jenkins job execution. The error is like "ZafiraIntegrator: %username% could not be registered in Zafira."

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.