Tchatator413
TripEnArvor instant messaging protocol - JSON-based
Loading...
Searching...
No Matches
Tchatator Documentation

Introduction

Welcome to the documentation for Tchatator, a messaging system designed to facilitate asynchronous communication between professionals and clients on the TripEnArvor platform. This documentation provides detailed information about the project's architecture, protocols, and implementation.

Overview

Tchatator is an API-based messaging system that allows professionals and clients to exchange text messages asynchronously. The system is designed to be robust, secure, and easy to use, with a focus on standardizing the exchange of messages between different systems.

Features

  • Asynchronous messaging between professionals and clients.
  • Three modes of access: professional, client, and administrator.
  • Detailed protocol for structured and secure message exchange.
  • Extensive error handling and security measures to prevent SPAM/FLOOD.
  • Configurable parameters for message size, rate limiting, and more.
  • Detailed logging for monitoring and debugging.

Modules

The project is organized into several modules, each responsible for different aspects of the system. Below is a brief overview of the main modules:

Configuration Module (cfg)

The cfg.h module handles the server configuration. It reads configuration parameters from a file at startup.

Database Module (db)

The db.h module provides the Data Access Layer (DAL) for interacting with the database. It handles all database operations, including storing, retrieving, and managing messages. This module ensures that all database interactions are consistent and efficient.

Server Module (server)

The server.h module manages the dynamic state of the server. It handles incoming connections, processes requests, and maintains the server's state. This module is responsible for the core functionality of the server, including message handling and client management.

Action Module (action)

The action.h module is responsible for parsing and interpreting client requests. It defines the protocol for communicating with the server and ensures that all requests are handled correctly. This module plays a crucial role in ensuring that the server's behavior is consistent with the defined protocol.

Utility Module (util)

The util.h module provides general utilities and helper functions used throughout the project. It includes functions for handling common tasks such as string manipulation, date/time operations, and more. This module helps to keep the codebase clean and modular.

UUID Module (uuid)

The uuid.h module generates and manages Universally Unique Identifiers (UUIDs). It ensures that each message and client session has a unique identifier, which is essential for tracking and managing messages and sessions.

JSON Module (json-c)

The json-c.h module provides a wrapper for the JSON-C library, which is used for handling JSON data. It includes additional functions and error handling mechanisms to ensure that JSON data is processed correctly and efficiently.

Protocol

The protocol for communicating with the Tchatator server is designed to be simple yet powerful. It supports various actions, including login, message sending, message retrieval, and more.

Security

Security is a top priority for Tchatator. The system includes several security measures to prevent SPAM/FLOOD and ensure that only authorized users can access the server. These measures include rate limiting, message size restrictions, and detailed error handling.

Logging

The server produces detailed logs for monitoring and debugging. The logs include information about incoming requests, server responses, and any errors that occur. The logging system is configurable and can be customized to suit the needs of the administrator.

Documentation

This documentation provides detailed information about the project's architecture, protocols, and implementation. It is designed to be a comprehensive resource for developers, administrators, and users of the Tchatator system.

Contact

For any questions or support, please contact the development team at support@tripenarvor.com.