Skip to content

mourdani/ft_irc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

81 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FT_IRC

Empower communication with FT_IRC: Your Gateway to Connectivity.

license last-commit repo-top-language repo-language-count

Developed with the software and tools below.


🔗 Quick Links


📍 Overview

The ft_irc project is an IRC server-client communication system that facilitates essential functionalities such as JOIN, PART, and PRIVMSG. It utilizes classes like Canal.hpp and User.hpp to manage communication channels, user details, and network interactions efficiently. The Server.hpp file plays a crucial role in handling connections, socket operations, and message parsing, ensuring seamless data exchange between clients. Moreover, errorCodes.hpp defines error codes for server responses, improving communication integrity. With features like color constants in colors.hpp for enhanced readability, ft_irc offers a robust solution for effective IRC communication.



📂 Repository Structure

└── ft_irc/
    ├── Makefile
    ├── includes
    │   ├── Canal.hpp
    │   ├── Server.hpp
    │   ├── User.hpp
    │   ├── colors.hpp
    │   └── errorCodes.hpp
    └── src
        ├── Canal.cpp
        ├── Server.cpp
        ├── User.cpp
        ├── commands
        │   ├── DIE.cpp
        │   ├── JOIN.cpp
        │   ├── KICK.cpp
        │   ├── LIST.cpp
        │   ├── NAMES.cpp
        │   ├── NICK.cpp
        │   ├── NOTICE.cpp
        │   ├── OPER.cpp
        │   ├── PART.cpp
        │   ├── PASS.cpp
        │   ├── PING.cpp
        │   ├── PRIVMSG.cpp
        │   ├── QUIT.cpp
        │   ├── TOPIC.cpp
        │   ├── USER.cpp
        │   ├── WHOIS.cpp
        │   └── command_handler.cpp
        └── main.cpp

🧩 Modules

.
File Summary
Makefile Code snippet manages IRC commands in the ft_irc repository, supporting functionality like JOIN, PART, and PRIVMSG. Critical for server-client communication in the architecture.
includes
File Summary
errorCodes.hpp Code snippet in includes/errorCodes.hpp defines error codes for IRC server responses, with RPL_TOPIC for topic retrieval. Maintains server-client communication integrity within the repository architecture.
Canal.hpp Code snippet in Canal.hpp defines a class for handling communication channels. Manages channel properties and users. Integral part of FT_IRC architecture.
Server.hpp Code snippet summary: Server class manages network communication, encapsulating socket handling and message parsing for the IRC server. Essential component of the IRC server architecture, handling connections and data exchange with clients.
User.hpp This User class manages user details like nickname with relevant methods for parent repository's IRC server architecture.
colors.hpp Code snippet in colors.hpp enhances ft_irc's readability with color constants, vital for error indication and user interface enhancement in the server-client communication feature.
src
File Summary
User.cpp Code Summary: src/User.cpp**Manages user functionality in ft_irc, integrating with the server. Interaction handling and state management pivotal in IRC protocol implementation.
Canal.cpp src/Canal.cpp in ft_irc repo manages communication channels. Implements channel functionality like joining, leaving, and sending messages. Vital for server-client messaging system.
main.cpp Code Summary:**Maintains server instance & handles startup. Relies on Server class for IRC server functionality. Critical for initializing server operations & coordinating client interactions. Facilitates reliable & efficient server management.
Server.cpp Code Summary:** Server.cpp manages server functionality, utilizing Server.hpp. Key features involve server operations coordination within the ft_irc architecture.
src.commands
File Summary
TOPIC.cpp Code snippet in ft_irc/src/commands/PRIVMSG.cpp manages sending private messages within the IRC server, facilitating real-time communication among users. It bolsters user interaction and enhances the server's messaging system.
PASS.cpp Code snippet: PASS.cppSummary: Enables user authentication, requiring minimum 2 arguments. Integrates auth method within server, ensuring secure access for users.
PRIVMSG.cpp Code snippet PRIVMSG.cpp in ft_irc repo handles messaging logic using Server features. It includes Server.hpp and defines int message, playing a key role in facilitating communication in the system.
KICK.cpp Code snippet summary: Implements JOIN command feature in IRC server. Responsible for handling user joining a channel functionality. Part of comprehensive commands module in ft_irc repository architecture.
JOIN.cpp ft_irc/src/commands/JOIN.cpp`Summary: Parses and processes user JOIN commands, adding users to the specified channel in the IRC server architecture.
WHOIS.cpp Code snippet in WHOIS.cpp ➡️ Server::whois method for fetching user info. Utilizes User class. Serves WHOIS command functionality in the IRC server system architecture.
command_handler.cpp Code snippet summary:In src/, command_handler.cpp in the ft_irc repo orchestrates and routes IRC commands, enabling server-side processing for user interactions.
OPER.cpp Code Summary:**OPER.cpp in ft_irc repo validates operator login for IRC users. Ensures correct name and password input, sets operator status, and sends appropriate confirmation.
PART.cpp Code Summary:** PART.cpp in ft_irc repo handles user leaving a channel. Core feature: managing user's departure from the channel. Relies on Server.hpp.For a more comprehensive understanding, refer to the code snippet from PART.cpp in the ft_irc repository.
USER.cpp ROLE:** USER.cpp in ft_irc handles user registration within the IRC server. Validates user data and updates username. Supports error messaging and parameter checks.
LIST.cpp Code snippet in LIST.cpp lists users in a channel. Includes Server.hpp. Implements list() method to display users. Essential for command handling in ft_irc repo architecture.
NOTICE.cpp NOTICE.cpp in ft_irc/src/commands notifies users via Server interactions, embedded within a broader network communication system in the parent repository.
QUIT.cpp Code Summary:**QUIT.cpp in ft_irc repository's commands handles user quitting. Cleans up user data and broadcasts status before removing from channels.
DIE.cpp Code Summary:**src/commands/DIE.cpp in ft_irc checks user privileges before allowing server shutdown. Helps maintain security by restricting operator access.
PING.cpp PING command in ft_irc**Handles PING command in the IRC server.References Server.hpp for implementation.Responds with a PONG message.
NAMES.cpp Code in NAMES.cpp interacts with server functionalities in Server.hpp for handling display of users in a chat channel.
NICK.cpp Code snippet in src/commands/NICK.cpp:** Updates user's nickname in Server. Main role: nickname change logic. Key features: interacts with User entity, processes nickname change request.

🚀 Getting Started

  1. Clone the ft_irc repository:
git clone https://github.com/mourdani/ft_irc
  1. Change to the project directory:
cd ft_irc
  1. Install the dependencies:
g++ -o myapp main.cpp
  1. Run the server
./ft_irc <port>
  1. Connect to the server using an IRC client

Return


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •