Welcome
Welcome to the Chahua development guide.
Chahua is a chat application with a backend and multiple client applications. The backend stores data, applies application rules, and delivers messages, while each client provides an interface for people to use Chahua. Clients currently include a Progressive Web App (PWA) and a Flutter app, and other native clients may be added in the future.
This book focuses on developing the PWA frontend and the backend. It explains how these two parts work, how they communicate, and how you can begin contributing to them. The PWA also serves as a concrete example of a Chahua client: once you understand how it sends requests, receives real-time events, and represents shared data, you can use the same model to understand how the Flutter app and future clients interact with the backend. Each client may use different languages and user-interface patterns, but they all build on the same backend capabilities and communication contracts.
You do not need to understand the entire application before making a useful contribution. Large applications are built from many smaller pieces. The goal of this guide is to help you identify those pieces, learn the vocabulary used to describe them, and follow a change through the code without getting lost.
The book follows a practical learning path. You will first learn how a chat application works at a high level. You will then run Chahua on your computer, explore the repository, and follow a message from the frontend to the backend and database. After that, you can study the frontend, the backend, or both.
Along the way, the guide will explain:
- What unfamiliar programming terms mean.
- Why the project uses particular tools and technologies.
- Where to look when you want to change something.
- How to test and debug your work.
- How to prepare a focused contribution for review.
You are not expected to memorize everything. Treat this book as both a guided path and a map you can return to while working.
When you are ready, continue to Who This Book Is For.