Skip to content

Link-Wolf/ft_irc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Link-Wolf - ft_irc 42 grade - 125 / 100 Year - 2022 stars - ft_irc forks - ft_irc issues - ft_irc OS - macOS

Logo

ft_irc

Internet Relay Chat
A C++ project to reproduce the behavior of an IRC server (ft. iCARUS)

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. Contact

About The Project

our irc motd

This project aims to reproduce the behavior of a real IRC server in C++ 98. It's a group project i made it with iCARUS. It requires us to develop an IRC server that's conform to the IRC standards, so we can connect to it and test it with a real IRC client. We don't have to develop a client, but we chose to use Weechat as our reference client.

Specifically, we have to:

  • Manage many clients without being stucked or blocked
  • Communicate with the clients using TCP/IP protocol
  • It must implement the following features:
    • Being able to authenticate with a nickname, a username and a realname
    • Joining a channel
    • Sending and receiving private messages
    • Sending and receiving messages to a channel
    • Having channels operators and basic users
    • Having all operators specifics commands
    • exit without any options

As an IRC server, we support the following commands:

  • NICK - Change nickname
  • USER - Set username and realname
  • PASS - Submit password on connect
  • QUIT - Quit the server
  • JOIN - Join a channel
  • PART - Leave a channel
  • PRIVMSG - Send a message
  • TOPIC - Set or check a channel topic
  • MODE - Set or check a user or channel mode
  • KICK - Kick a user from a channel
  • INVITE - Invite a user to a channel
  • PING - Ping the server
  • NOTICE - Send a notice

And the i channel mode, which allows only invited users to join the channel

We added some bonuses to our server :

  • The t channel mode, which allows only operators to change the topic of the channel
  • The ability to send and receive files using the DCC command
  • Our fantastic bot, Ratatouille-b0t, who will help you to use our server by answer to your [...] quoi messages by feur and some others originals surprises !

(back to top)

Getting Started

Because it's a simple C++ project, there isn't much to say here

Prerequisites

Having a C++ compiler like c++

Installation

  1. Clone the repo

    git clone https://github.com/Link-Wolf/ft_irc.git
  2. Compile the project

    cd ft_irc; make
  3. Execute it

    ./ircserv [port] [password]

(back to top)

Usage

Use our IRC server as you'd use a real one, but please be kind to him and remember he doesn't implement everything !

irc example

(back to top)

Roadmap

  • Add bonus features
  • Add back to top links

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

Contact

Mail : xxxxxxx@student.42mulhouse.fr

Project Link: https://github.com/Link-Wolf/ft_irc

(back to top)

Releases

No releases published

Packages

No packages published