-
ideas for building a chat server
I and a friend are building a chat server just for fun and I want some suggestions on what you all would like to see in a chat server. So far it is being patterned loosely after IRC. Here are a few of my ideas and I am coming up with more by the minute but I would appreciate your input as well.
Anonymous and Registered users
You can logon and user the server by just choosing a nick if it is not in use. You can also register your nick so others cannot use it
Banning system
This is a no brainer. However I would like to implement different levels of bans. room level and server level
Error return codes
Server sends out a number when there is an issue, such as trying to join with a nick already in use. Numbers are specific to the issue, and the user never has to see them if the client program handles it silently
Server stats
how many people are on, average people per room, number or registered/unregistered users online, all that good stuff
Dynamic and persistent rooms
A room can be created simply by joining it, but it is destroyed with the last user leave is. Persistent rooms have to be setup by the server but do not get destroyed
User levels
User levels per room and server. Probably 3 level. user, room admin, server admin
File transfers
Just what it says
Private messages
To a user directly instead of in a room
Global notices
Sent to all users on the server. Client program can choose how they want to show this. It would look just like an error return code, but be an informational code.
I am sure more ideas will keep coming to me. These I got in about 5 minutes. What do you in the community want to see? If we get this designed tight and working awesome we will make an opensource sourceforge project out of it too!
-
I personally think its too similar to IRC that you should not waste the effort to make it (unless you are practicing programming, and if you are doing that, please keep it private)
Come under the reign of the Idiot King...
Come to me ... I love linux!
Registered Linux user: Idiot King #350544
-
Originally Posted by XiaoKJ
(unless you are practicing programming, and if you are doing that, please keep it private)
That doesnt sound like it captures the spirit of open source software to me
-
Many projects with minute differences will only go out to hurt the open source community.
If he really wanted to help, he can submit patches to the main IRC project. Forking is expensive and should only be done when there really is a need, and the patches are rejected by the main branch... yadayada
Come under the reign of the Idiot King...
Come to me ... I love linux!
Registered Linux user: Idiot King #350544
-
Opposed to making an alternative to irc? For all you know, what he wants to make could replace irc in 20 years. And you can't really say that it would take (potential)developers away from irc. If they contribute to an irc-alternative, they probably didnt want to contribute to irc itself
-
Originally Posted by Darkbolt
If they contribute to an irc-alternative, they probably didnt want to contribute to irc itself
Thats the bad part...
Don't get me wrong --- I'll accept egcc any day, and that clone of samba in modular terms, but unless there is incompatible upgrades, there shouldn't be a fork.
The open source community is actually at risk of excessive forking. Remember that strength comes in unity and not segregation. (though creativity and survival usually comes with diversification...)
In the coming world where the proprietary computing people are joining in to eliminate the F/LOSS, we mustn't consider forking too hastily.
Come under the reign of the Idiot King...
Come to me ... I love linux!
Registered Linux user: Idiot King #350544
-
XiaoKJ please stick to the subject of the thread. Hopefully you didn't kill it and make other users not want to read it and respond. There is nothing wrong with building a chat server at all. Even it if is loosely patterned after IRC as I stated before. I use IRC everyday, infact I am almost never off IRC and I will continue to use it. However this project is just for fun. Is there anything wrong with that? Besides, if no one ever build anything that has already been created then nothing better would ever get created. I am not in the least trying to compete with IRC. I and a friend just want to use this as a learning project. If it comes out nice then why should I not make it open source and share it? That is what the community is all about. So please either give suggestions or say nothing. And as Darkbolt says, in 20 this could become big and *gasp* maybe people will prefer it over IRC
-
Originally Posted by XiaoKJ
Many projects with minute differences will only go out to hurt the open source community.
If he really wanted to help, he can submit patches to the main IRC project. Forking is expensive and should only be done when there really is a need, and the patches are rejected by the main branch... yadayada
I concur! Enthusiastically concur even. Too many chiefs, not enough indians.
Wanna learn how to program by creating a simple app? Spiffy. Wanna ask a pile of people on forums who use software that does exactly what you propose to do with your software what you should do with your project for fun? We don't care.
Last edited by ions; 01-10-2007 at 05:46 PM.
-
I agree with XiaoKJ and ions. The very first question you need to ask yourself before beginning any programming project is, "What is the problem I'm trying to solve here?" This problem needs to be clearly stated and understood, so you actually know where you going with it. The problem here seems to be 'have a little fun' which doesn't sound to convincing to me.
The second question, "Can this be accomplished without custom software?"...
Why reinvent the wheel?
-
I don't think he's setting out to solve any particular problem, but rather looking for input for a programming project he's interested in starting. Nothing wrong with that....
It's kinda like an assignment I had in a java class a few years back: Make a chat server and client using sockets. It was fun, and that's probably all blobaugh is proposing. (well, except the java part )
Need help in realtime? Visit us at #linuxnewbie on irc.libera.chat
Few of us will do as much for our fellow man as he has done.
--Andrew Morton on RMS
-
je_fro right you are. and actually it is in java . Though I am not in a java class. Already took it. My friend is though so he should learn a lot when we build it
-
I say go for it! There can never be enough programmers in the Open Source world! Surely the laws of "Natural Selection" apply to Open Source software as well? Only the best carry on...
Anyway, to keep your thread on track: I use Kopete for MSN, Yahoo! and ICQ, and Iuse GPG encryption for all of these for users wherever I have their key. Could you throw something like that into your project? PM with encryption? Don't think anyone has done that yet...
Also, all e-mail I send out is digitally signed with my key to prove who I am, so could you use GPG to authenticate transmissions from users to prevent abuse?
I don't really use IRC since I'm not usually online (on leave at the moment, so I'm squatting on here!) so I may to talking totally big, hairy, juddering b******s, but I don't care. I'm not a programmer (yet!).
Anyway, good luck with the project!
James
-----------------------------
UseLinux.net
-----------------------------
perl -e 'use Math::Complex;$|=1;for$r(0..24){for$c (0..79){$C=cplx(($c/20.0)-3.0,-($r/12.0)+1.0);$Z= cplx(0,0);for($i=0;($i<80)&&(abs($Z)<2.0);$i++){$Z =$Z*$Z+$C;}print$i>=80?"*":" ";}print"\n";}'
-
that's a cool idea to encrypt everybody's communications with their gpg keys!
Need help in realtime? Visit us at #linuxnewbie on irc.libera.chat
Few of us will do as much for our fellow man as he has done.
--Andrew Morton on RMS
-
hmm. actually i thought about encrytion earlier today. i think i may try to implement an encrypted connection to the server itself. adding a gpg on a per user basis to let other users know they are who they say is a good idea too
-
Actually I also said that learning projects are fine for me.... Sorry for the derailment... (I just didn't think it would keep lengthening...)
Since you are using Java, don't forget to exploit the full set of OOP, and make sure every non-trivial part is separate as a module.
If I were you, I'll start from the IRC sources and see if I can re-implement it such that generic chat clients like Kopete will get fooled into thinking its IRC.
Come under the reign of the Idiot King...
Come to me ... I love linux!
Registered Linux user: Idiot King #350544
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
|