This article explores problems related to designing and developing the system to predict renewable energy (or similar projects) - the outcome of the presented project is a web application (not a desktop app). Many things have to be considered, like the optimal technologies, team composition, budget, timetable. It might be helpful for you to read this article before you choose to develop a similar system, as otherwise, it can cost you a lot of time and money.
One of the traditional arguments on avoiding using ORM is the lack of performance. Although it is generally speaking correct, there are many ways to write queries in your application. Some of them are better (faster and more efficient) than others. There is almost always a way to significantly increase the performance of an application without avoiding the ORM approach. We anticipate some preliminary knowledge of Django and SQL here (so make sure you understand basic concepts before continuing).
There are many interesting use-cases for generating static websites. They reach from a specific website (like documentation) to a general-purpose application (like cached images of e-shops, blogs, etc.). The main advantage of a static website is the simplicity of the product, almost no requirements to infrastructure (even GitHub can host them) and security. Many technologies help to generate static websites, from complex frameworks to simple generators.
There are many common challenges in systems that process large data sets like videos, images, large feeds and similar. One of the most important decisions is whether to deploy infrastructure on some cloud service or if it is better to use an on-premises solution. Ultimately, if you decide to use a cloud-based solution, other challenges arise, like which provider would be the best one, how to deploy - use infrastructure as a code, or just some simple solution etc. Also, there are many interesting services that are cheap or free and can be helpful like Dropbox.
One of the everyday challenges in back-end development is designing and developing a secure authentication and authorization process. There are many solutions available, but deploying them without a thorough understanding of how they internally work is dangerous. Therefore, we present here the most common way of dealing with the authentication process. The most popular forms of dealing with this issue are session-based authentication and token-based authentication.
Currently, the most popular public-key cryptosystem is still RSA. It is even though more sophisticated and secure systems are available (including quantum-resistant ones). It is probably due to the relative simplicity of the algorithm, long history and general technical support. On the other hand, considering the advancement in quantum computers development and programmable hardware, the security of this cryptosystem is becoming more and more questionable.
During the last few years, we could see a revolution in entering passwords into online services (e-shops, email providers, social networks etc.). This revolution ensued in a surge of forgotten passwords. More and more users forget passwords just after entering them, leading to an increasing number of toolkits for storing passwords where each has its vulnerabilities.