/ft_irc

💬 a simple IRC server built from scratch in C++

Primary LanguageC++

💬 ft_irc

ft_irc is a project from the 42 school, focused on creating an IRC server following standard internet communication protocols. The server's performance is evaluated using a real IRC client.

Top used language GitHub last commit

📚 Table of Contents

👨‍🏫 Quick demonstration

basic-demo.mov

Basic demonstration

bot-demo.mov

Demonstration with our chatbot powered with OpenAI.

📦 Installation

Clone the repository from GitHub:

git clone https://github.com/okbrandon/ft_irc.git

Compile the server executable:

make

Compile the server executable with debug logs:

make logs

With this executable you'll be able to see every input going to the server and every output from the server.

Note

The executable contains the mandatory and bonus part combined.
Our reference client is IRSSI.

📝 Usage

Run the server executable:

./ircserv <port> <password>

Where the port parameter is on which your IRC server will be listening to for incoming IRC connections. And password is the connection password. It will be needed by any IRC client that tries to connect to your server.

Note

Be aware that the port should only be between 1 inclusive and 65535 exclusive.

📝 Example

The subject asks to implement the following commands: KICK, TOPIC, INVITE and MODE with the flags i, t, k, o and l. We also implemented other commands such as: PRIVMSG, CAP, JOIN, NICK, PART, PING, QUIT and USER.

When joining the server with our reference client, you should be automatically authentified. welcome-img

From here you can send other commands, for instance if you want to create a channel or join an existing one use: /JOIN myChannel. Now you're inside a channel, you can send messages and do what ever you want on this wonderful server! :) inside-channel-img

📎 References

⬆ Back to Top

🌏 Meta

bsoubaig - bsoubaig@student.42nice.fr
evmorvan - evmorvan@student.42nice.fr