Angular

Angular is a complete JavaScript-based open-source front-end web application framework, developed and maintained by Google and by the open-source community. Angular addresses many of the challenges encountered in developing single-page web applications. It aims to simplify both the development and the testing of such applications by providing a framework for client-side model–view–controller (MVC) and model–view–view-model (MVVM) architectures. Angular is expressive, readable, and quick to develop. Angular 2/4/5 , more of a revolution than an Angular 1.x evolution, tackles some difficult issues such as mobile/pc compatibility, modularity and performance. Angular brings true object oriented web development to the mainstream.

Angular @ webiks

Developing, delivering and maintaining complex web applications, that visualize and analyze great amounts of data in real time - Angular is the natural client-side framework of choice for many of webiks's projects. It helps us to cooperate and coordinate the development effort between the team's developers, strictly preventing us from falling to the extra-common "javascript spaghetti" development pattern. It's high level of modularity allows us to truly implement test driven development methodologies.

D3.js

D3.js is an awesome open-source javascript library for building interactive data visualization layouts. Histograms, stacked bar charts, timelines, visual link analysis, geo-projections - D3 has all those layouts and many more. Exploiting the power of the widely implemented SVG, HTML5, and CSS standards, D3 has been rapidly adopted by the data analysis and information visualization community. D3 V4.0, officially released in July 2016, brings some great performance and modularity improvements.

D3 @ webiks

Great visualizations are eye-openers. Bad visualizations are ... just bad (3D pie-charts, anyone?). In many of webiks's applications, users interact with data in order to get valuable insights. Allowing full access to the DOM, being data agnostic and framework agnostic - D3 places very few limits on the types of visualization that can be created - making it a great and usefull tool in our technological kit.

Cesium.js

Cesium.js is an open source geo-spatial visualization javascript library tuned for dynamic display of data. Sponsored by AGI, Cesium is one of the few native javascript alternatives for Google Earth. 2, 2.5 and 3 dimensional globe views, rich primitives and entities API for vector data visualization, 3-D terrain and 3-D objects rendering, natural support in temporal-dynamic data - makes Cesium a great geo-spatial viewer of choice for rich web applications Exploiting the power of modern GPUs, web-gl and HTML5's canvas element - Cesium brings rendering capabilities that up till lately seemed far fetched - all the way to your (modern) browser.

Cesium @ webiks

Geo-tagged and geo-referenced data is everywhere. User/venue check-ins, GPS marked images and videos, manned and unmanned vehicles telemetry, election polls, etc. - are all collected and stored endlessly. Mastering the (not so easy to master) Cesium viewer, allows us at webiks to provide our customers with web applications that include a complete, photo-realistic, geo-spatial analysis experience.

Elastic ELK

Elasticsearch is an open source distributed, scalable, real-time search and analytics engine. Accompanied by Kibana, its analytics and visualization platform, and Logstash, its data collection engine, ELK forms a power, real-time, big-data oriented, NoSQL environment for data exploitation.

Elastic @ webiks

Big data brings big headaches. Storing data becomes easier, but exploiting it and gaining actionable insights out of it becomes harder and harder. Webiks's typical customer experiences the rapidly changing nature of the digital era - data sources and structures, business and operational questions, research and analysis methodologies - all change. Rapidly. Our typical customer is no longer satisfied with querying her data (i.e., asking well-known and well-structured questions). In order to keep up with the digital era's pace, she has to be able to explore her data (i.e. understanding what the data can tell her beyond the formal modeling or hypothesis testing). Here comes Elastic. Data aggregations, power textual search, cross-filters, results ranking, geo-hash, beautiful and useful dashboards - all present a unique data exploration user experience. The exploratory stage (usually the first stage of an analysis task) in some of the more complex applications we have developed at webiks is mostly based on the ELK stack.

Node.js

Node.js is an open-source, cross-platform JavaScript run-time environment for executing JavaScript code server-side. Node.js has become one of the foundational elements of the "JavaScript everywhere" paradigm, allowing web application development to unify around a single programming language, rather than rely on a different language for writing server side scripts. Express is a flexible Node.js web application framework that provides a robust set of features for Node.js – based applications.

Node.js @ webiks

"JavaScript everywhere" paradigm, which allows both client and server to be written in JavaScript, makes developing, delivering and maintaining complex web applications better and faster than ever before. As we are JavaScript enthusiast, Node.js + express becomes our natural "weapon of choice", giving us the flexibility to make our code compatible for both server and client when needed and response to dynamic requirement changes quickly, elevating the term "code modularity" to a whole new level.

Redux, NGrx & Angular-Redux

Redux is a predictable state container for JavaScript applications, designed for managing application state. It helps you write applications that behave consistently, run in different environments, and are easy to test. NGrx is an RxJS powered state management for Angular applications, inspired by Redux. 'Angular–Redux' is an Angular bindings for Redux which allows using Redux eco-system code.

Redux @ webiks

As an application grows, so it's state management complexity. Redux is a great solution for developing large scale apps in a dynamic world. When developing such large scale projects, mastering Redux based libraries is essential. As Angular is our leading framework, libraries as NGrx and Angular-Redux become useful tools in our toolkit as well, allowing us to integrate Redux in more than one way, balancing performance, modularity and code simplicity.

GraphQL

GraphQL is a query language for your API developed by Facebook, and a server-side runtime for executing queries by using a type system you define for your data. GraphQL isn't tied to any specific database or storage engine and is instead backed by your existing code and data. It provides an alternative to REST and ad-hoc webservice architectures. It allows clients to define the structure of the data required, and exactly the same structure of the data is returned from the server. It is a strongly typed runtime which allows clients to dictate what data is needed. This avoids both the problems of over-fetching as well as under-fetching of data.

GraphQL @ webiks

As we develop our web projects in ever – changing environments, GraphQL can do wonders when planning and executing modern web application development. As back and front ends are sometimes developed on the same time, allowing the client code determine what it actually needs enhance design and development time and level. In addition, it provides robust infrastructure which supports dynamic data fetch on a single request, which allows us at webiks to develop applications with efficient and fast API.

WebSocket & Socket.IO

Socket.IO is an event-driven JavaScript library for realtime web applications. It enables realtime, bi-directional communication between web clients and servers. Socket.IO primarily uses the WebSocket protocol with polling as a fallback option, and provides a nearly identical API interface for both its client and server libraries. It provides many more features beyond a simple wrapper for WebSocket, including broadcasting to multiple sockets, storing data associated with each client, and asynchronous I/O.

Socket.IO @ webiks

Client-server data synchronization can be a pain, regardless of which kind of app you're developing. Socket i/o provides us with a set of tools allowing us to do client -server transfers efficiently and gracefully, get live updates from the server with minimal network traffic, and write better and smarter code for data management in any type of network.