Web Application Development - bounswe/bounswe2024group5 GitHub Wiki

General Information

Web Application is a software application that is accessed through a web browser over a network, typically the internet. One of the biggest difference between a web and a convetional desktop application is that web applications utilize a client-server architecture. We can also say that any website we access from a web browser such as Google Chrome, Opera, Firefox, Safari on a computer is a web application.

There are some essential characteristics of web applications are:

  • Accessibility: Web applications should be accessible from any device with an internet connection.
  • Web-based interface: Web applications have a user interface that can be accessed by users through a web browser.
  • Server-side processing: Web applications run on a server and do not require locally installed software on the user's device.
  • Interactivity: Web applications offer various features and functionalities that users can interact with.
  • Data Storage: Web applications often need to store and manage data, such as user accounts, preferences, content, and transaction records. This data can be stored in various types of databases, including relational databases (such as MySQL or PostgreSQL), NoSQL databases (such as MongoDB or Cassandra), or cloud-based storage solutions.

Implementation Steps

There are some fundamental and general steps of Web Application Development:

  • Front-End: Develop the client-side components of the web application using HTML, CSS, and JavaScript. Implement the UI(User Interface) design and ensure responsiveness across different devices and screen sizes.
  • Back-End: Develop the server-side components of the web application, including the database, server logic, and APIs. You may use some programming language like Python, Java, and Ruby as server-side languages, some DBMS like MongoDB, MySQL, and PostgreSQL, APIs like REST, and Server frameworks like Django to construct back-end of your web application.
  • Client-Server Design: A client-server architectural model implies the interaction between the user’s browser and the server. The server processes the incoming client’s requests and sends back the results. So, you need to know what is HTTP/HTTPS.
  • Content Management: This part refers to the process of creating, organizing, storing, and updating digital content within a web application. You can use content management platforms (CMS) like Wordpress.
  • Version Control: Version control is a system that monitors and manages alterations to the source code of a project.
  • Web Security: Securing web applications entails implementing measures to safeguard against potential threats that might jeopardize the confidentiality, integrity, and availability of data. These measures encompass data encryption, authentication and authorization protocols, input validation, protection against cross-site request forgery (CSRF), among others.
  • Testing: Testing encompasses a methodical assessment and validation of the application's functionality, performance, security, and usability.
  • Optimization: In short, it involves detecting what can be improved according to reliability, security, functionality, and performance and improve them.

Some examples of Web Applications

Web applications are one of the core components of our digital age. They have been used for quite some time in various fields, like collaborative tools, streaming services, and many others. Here are some examples.

Google Docs

Google Docs is a cloud-based collaborative tool. It's seamless connection with Google Drive and instinctive UI make it a popular choice.

Netflix

Netflix is a streaming platform for movies, TV series, and similar contents. It's revolutionary algorithm for personal experience made Netflix an industry leader.

GitHub

As mentioned on its own page, GitHub is a web-based hosting service for git repositories. It allows users all around the world to work on shared projects simultaneously.

Habitica

Unlike my previous examples, Habitica isn't a well-known popular web app, but it should be. Habitica gamifies every task users can put in written form. Similar to Github's issue tracking system, Habitica can track users' tasks. For every task, users gain points, which they can use to fight against monsters with other users.

Summary

Above, We briefly explained what a web app is, what characteristics it has, and how it is developed in general.

References

There are some extra sources except for every website you can access by clicking above:
Coreteka
A Good Article in Linkedin

Authors

Süleyman

Güney