-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #38 from jdomingu98/15-hacer-un-readme-bonito
15 hacer un readme bonito
- Loading branch information
Showing
2 changed files
with
110 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2024 Juan Antonio Domínguez Arcas | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,89 @@ | ||
# ft_irc | ||
Our own Internet Realy Chat for 42 school | ||
# ft_irc: A custom Internet Relay Chat Server | ||
|
||
> "Internet Relay Chat (IRC) is a text-based chat system for instant messaging. IRC is designed for group communication in discussion forums, called channels, but also allows one-on-one communication via private messages as well as chat and data transfer, including file sharing.\ | ||
Internet Relay Chat is implemented as an application layer protocol to facilitate communication in the form of text. The chat process works on a client–server networking model. Users connect, using a client—which may be a web app, a standalone desktop program, or embedded into part of a larger program—to an IRC server, which may be part of a larger IRC network." ([source]) | ||
|
||
[source]: https://www.radware.com/security/ddos-knowledge-center/ddospedia/irc-internet-relay-chat/ | ||
|
||
As part of the "42 common-core" roadmap, we are asked to implement a custom IRC server, with a limited range of commands and handling only client-server communications. | ||
|
||
## Requeriments | ||
|
||
> [!NOTE] | ||
> This project has been developed on Unix-based systems, so please note that it will not work correctly on other systems. | ||
To correctly run this project on your computer, you need to have installed: | ||
|
||
* An Unix-based system, such as MacOS, Ubuntu, Debian, etc. | ||
* Git -> [installation tutorial] | ||
* C++ programming language -> We use C++98 in the project, but a newer version also works | ||
* Makefile | ||
* An IRC client -> We test the server with **netcat command** and the **irssi** client | ||
|
||
[installation tutorial]: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git | ||
|
||
## Install the project | ||
|
||
Once you have fullfilled the requeriments, you are ready to start intalling the project on your system.\ | ||
To install it, you have to run the following command in a terminal: | ||
|
||
``` | ||
git clone https://github.com/jdomingu98/ft_irc.git | ||
``` | ||
|
||
## Compile and run the server | ||
|
||
Once you have downloaded the repository, you have to enter the directory using the `cd` command and compile it using `make` command.\ | ||
This will generate an executable called `ircserv` that can be execute using the following structure: | ||
|
||
``` | ||
./ircserv <port> <password> | ||
``` | ||
|
||
Where `<port>` is the port where the server will listen for new connections and commands and `<password>` is the connection password | ||
|
||
## How to connect to the server | ||
|
||
> [!WARNING] | ||
> This project was tested with `netcat command` and with `irssi client`. Using other clients may lead to some errors and incorrect behaviour | ||
* To connect using netcat (nc) command, you only have to launch: | ||
|
||
``` | ||
nc <host> <port> | ||
``` | ||
* To install and use the **irssi client** you must follow [this] guide | ||
[this]: https://irssi.org/download/ | ||
## Commands implemented | ||
| Command | Description | | ||
| :-----------: | :----------- | | ||
| PASS | Set a ‘connection password’. If set, the password must be set before any attempt to register the connection is made. | | ||
| NICK | Give the client a nickname or change the previous one. | | ||
| USER | Used at the beginning of a connection to specify the username and realname of a new user. | | ||
| JOIN | The client wants to join the given channel(s), using the given key (if necessary) for it. | | ||
| PART | Removes the client from the given channel(s). | | ||
| MODE | Set or remove options (or modes) from a given target. Our channels modes: i,t,k,o,l | | ||
| INVITE| Invite a user to a invite-only channel. | | ||
| KICK | Request the forced removal of a user from a channel. | | ||
| OPER | Used by a normal user to obtain operator privileges. | | ||
| TOPIC | Change or view the topic of the given channel. | | ||
| PRIVMSG | Send private messages between users, as well as to send messages to channels. | | ||
| QUIT | Terminates a client’s connection to the server. | | ||
## See the wiki | ||
For more detailed information about the project, please visit the [wiki] | ||
[wiki]: https://github.com/jdomingu98/ft_irc/wiki | ||
--- | ||
Project made by [@ruzafa8], [@Atrujillo02] and [@jdomingu98] | ||
[@ruzafa8]: https://github.com/ruzafa8 | ||
[@Atrujillo02]: https://github.com/Atrujillo02 | ||
[@jdomingu98]: https://github.com/jdomingu98 |