Internet applications

Designing and creating web applications is the most frequently chosen service at aveneo. In recent years, solutions running inside web browsers have been effectively replacing other computer programs: desktop (classic) applications and mobile applications. There are many reasons, but the most important is unlimited availability without compromise. Although the architecture of our solutions consists of many layers, in our web applications special attention should be paid to the strong division of two layers: backend and frontend. Thanks to this approach, we have separated the UI and UX layer (user interface) from the business logic, model and database, or integration with other solutions.

Server side (backend)

Part of the web application responsible for the logic of business processes, data processing and storage, integration with other solutions or computing power for complex operations and artificial intelligence. The whole thing is carried out on the server infrastructure, which can be distributed and freely scalable, so it will never constitute a limitation for business.

.NET

Microsoft .NET Core

Microsoft .NET Core is a strong foundation for each of our solutions. The corporate solution available on many platforms is easily scalable, secure and, above all, efficient.

Learn more about .NET Core

Server side (backend)

Part of the web application responsible for the logic of business processes, data processing and storage, integration with other solutions or computing power for complex operations and artificial intelligence. The whole thing is carried out on the server infrastructure, which can be distributed and freely scalable, so it will never constitute a limitation for business.

.NET

Microsoft .NET Core

Microsoft .NET Core is a strong foundation for each of our solutions. The corporate solution available on many platforms is easily scalable, secure and, above all, efficient.

Learn more about .NET Core

Client side (frontend)

Software that runs in the web browser area and is responsible for the visual layer that ensures user experience in the web application. It not only provides an interactive interface, but above all connects people with processes and data in as natural a way as possible. And it's beautiful.

React

ReactJS + Redux

The ReactJS framework combined with Redux form the basis of each of our web solutions, including aveneo.SDK. This is one of the most popular solutions chosen wherever efficiency and development possibilities are the most important values.

Learn more about the ReactJS framework

Frontend based on ReactJS, Redux and aveneo.SDK


Countless components

By developing aveneo.SDK, we have created a very large number of ready-made components that allow us to shorten the development time of web applications to a minimum. Data visualization, forms, communication, user authentication - these are just some of the elements you don't have to worry about developing. Why start a project by designing a circle every time?

Thanks to this, creating an application allowing full data management (CRUD - create, read, update, delete) takes us minutes. In addition, an application created in a fast boiler plate model, a ready API and we have a recipe for a prototype in record time.

Diagram of the aveneo.SDK front-end architecture

Extremely simple back office

Our backoffice solutions are standardized to the limit. Any tabular data will look and behave the same if you want it to. Exploring and managing data has never been so easy and enjoyable. In addition, we remember user and device settings, so they only see what is most important to them.

Performance and availability

The specificity of the solution based on ReactJS with Redux is the virtual DOM tree and reactive updates when the application state changes. In practice, this means that any changes to the data result in instant updates to the application and data visualization without waiting for the page to "load".

Multilingualism and globalization

Multilingualism and the ability to provide a user interface in any language are standard in our solutions. However, we go a step further - we not only translate, but also present data depending on the user's location. We assign data to geolocation and thus build international solutions focused on local markets.

aveneo.SDK components

Components provide complete functionality with a user interface. We also have our own default template that allows us to deliver a ready-made business solution within days. This can be achieved, for example, thanks to generic forms (forms are generated automatically based on model metadata) and grids with full support for sorting, filtering, pagination and many other functionalities.

See what aveneo.SDK looks like

aveneo.SDK libraries

We have a lot of code that we share between projects. Framework extensions, algorithms, design patterns, multi-layer architecture. We make everything available that can be reused internally. When developing such code, we maintain high internal standards and document it, and then train the entire team on how to use it.

Learn about the structure of aveneo.SDK

Backend based on .NET Core and aveneo.SDK


aveneo.SDK libraries

We have a lot of code that we share between projects. Framework extensions, algorithms, design patterns, multi-layer architecture. We make everything available that can be reused internally. When developing such code, we maintain high internal standards and document it, and then train the entire team on how to use it.

Learn about the structure of aveneo.SDK

Multi-layer modular monolith architecture

The modular monolith architecture means that we provide one solution with noticeable module boundaries resulting from the business values of the activity whose needs the software addresses. This means that we try to sustainably granulate software into modules that can be individually scaled over time, can use separate data resources, have their own integrations, and can even be completely interchangeable. Thanks to communication based on an external bus, they remain independent and mutually reliable, which additionally increases the comfort of using the solution and facilitates integration with third-party solutions.

Diagram of the multi-layer architecture of the aveneo.SDK modular monolith
Modules can be replaced
Independent module development
Unlimited integrations
Any scalability
Rest Logo

+

Web Socket Logo

Communication using REST API and WebSocket

For communication between the frontend and backend, we use two protocols - connectionless HTTP with REST architecture and connection WebSockets. The first technology works very well when downloading and sending large portions of data. The second allows us to provide solutions whose content changes in real time and the transmitted content is minimized to only the necessary data. Thanks to this, the solutions can respond in real time to changing data and react in various situations, e.g. lack of access to the network and server.

Freedom to integrate with other solutions

The internet solution offers unlimited integration possibilities. Server-side software can communicate with third-party solutions, ranging from local, existing software to cloud solutions and services from companies such as Google, Amazon and Microsoft.

Diagram of possible integrations of aveneo.SDK with other solutions

Scalability and cross-platform

The backend of our web applications can run on virtually any hardware platform. All thanks to the .NET platform, which is available both for native Microsoft systems - Windows and Windows Server, but also for Linux/Unix and macOS platforms. Additionally, we enclose solutions in containers and can scale them in two dimensions - lengthwise and widthwise. Without any special programming intervention - just like that.

Windows Logo

Windows

Linux Logo

Linux

macOS Logo

macOS

UNIX Logo

UNIX

Docker Logo

Docker

Kubernetes Logo

Kubernetes

Security

User and data security is the most important feature of software that anyone who wants to avoid problems should pay attention to. The use of integrated two-step authentication, integration with external credential centers using OAuth or OpenID, and finally authorization using Google/Microsoft/Facebook/Apple accounts. End-to-end encryption of communication, storing data in encrypted containers are just some of the solutions we use. Our web applications have repeatedly undergone very rigorous security audits carried out using the "ethical hacking" model, and no serious vulnerabilities threatening the security of data, organizations or users have ever been detected.

SSL 3.0 encryption
Two-step user authentication
End-to-end encryption
Redundancy-oriented architecture
DDOS protection
"Ethical hacking" audits

"Legacy" technologies


The technological world is developing very dynamically, all thanks to the changing environment and user expectations. We have identified the following technologies as outdated for many different reasons - they do not meet security standards, they are not supported and developed by their creators, they are not transferable or they are not as efficient as newer solutions. Thanks to the fact that in the past we have developed software in the following technologies, we can offer their support and maintenance, and as part of the development, migration to newer solutions, indicated above.

Case study


Are you ready to talk about your project?
  • If you only know the need or problem to be addressed by the software, are you able to help?

    Our primary goal is not so much to provide software, but to actually address the needs and solve problems of our customers. Before we start creating a vision of the software's functionality together, we will conduct a deep analysis to reveal the needs. We will then prioritize them based on business values. We will also look for paths to optimize the operation of your business processes, not only from the perspective of the software itself.

  • I am afraid of problems when creating software resulting from my lack of substantive knowledge about this process. Is it right?

    For us, the key value in working with non-technology-savvy clients is to bring them as close to technology as possible. That's why we devote a lot of time and attention to carefully explaining each stage of the software development process. We also provide advice so that design decisions are fully conscious and based on understandable values.

  • I don't know how to manage the budget for software development. What to do?

    Many clients are afraid of disclosing the budget at the early stage of the project, believing that it will negatively affect the valuation of the project. This is the most common mistake and cause of frustration in the software development process. Really defining the budget allows you to look at functional needs from many perspectives. Being aware of the limited budget, we can look for more economical solutions that may not be fully satisfactory, but at this stage they will address the needs and will be sufficient. As the business value of the entire project increases, these areas may be developed, but this does not have to happen immediately. There are several proven solutions that allow for controlled budget management - we will present them and help you with this task as soon as we get to know each other.

  • Will software development using the agile methodology cause delays, blurred goals and increased costs?

    This is one of the most common concerns that arises at the early stage of talks about implementing a new project. In short: no. An agile approach to a project does not preclude setting clear goals and points on the timeline that are to be achieved. However, frequent and small design iterations allow you to obtain the desired functionalities faster with a reduced budget. The combination of lean development with continuous validation of requirements and assumptions perfectly verifies the previous needs analysis. In fact, the analysis progresses with the development of the project and naturally optimizes its scope by limiting unnecessary steps.

  • How do I know if you are technologically capable of working on my project?

    If our portfolio is not enough of an argument, we will be happy to present technological possibilities and talk about the challenges we have encountered over the years of working on other projects and how we found solutions to seemingly unsolvable problems.

  • What should our communication look like during the project?

    In communication with clients, we focus primarily on honesty, openness and transparency. This allows you to avoid understatements while building lasting, mutual trust.

  • How can we manage the project schedule so that it doesn't stretch over time?

    We look at each project on two scales - micro and macro. On a macro scale, we define milestones for modules and functional areas that we want to achieve in specific order and points on the project timeline. On a micro scale, we manage tasks in iterations no longer than 2 weeks, so we have full control over the implementation stage and can dynamically respond to emerging threats by e.g. increasing internal resources.

  • What if my users don't want to use the software we created together, or don't do it as intended?

    Implementation is not the last stage of the software development cycle at aveneo. We help with user training and training. We are the best partner for this because we know all the design assumptions and full mechanics of the delivered solution. This will guarantee satisfaction and understanding of the solution, and will also allow you to collect conclusions from users regarding potential optimizations and new functionalities.

  • How to reconcile the many different roles of software users without internal contradictions?

    For large projects, it is difficult to bring all stakeholders together at every meeting. It is completely natural for different departments to have mutually exclusive expectations. Our role is to collect all the needs and design a solution that will take into account all business processes and reconcile those that stand in opposition to each other into a coherent and logical whole.

  • I have serious concerns about whether the project will ultimately succeed. How to deal with it?

    This is completely normal! Every investment carries some risk. Depending on the source of the concern, additional levels of security should be implemented. For our part, we will try to find tools that will help you get rid of stress and guarantee the success of the project. For example, if concerns concern the functional scope, we suggest identifying the most valuable functionalities and building a small section of the software, and then validating the assumptions and checking in a real environment whether the solution is satisfactory.