Dwayne Barsotta

Dwayne Barsotta

  • NA
  • 13
  • 5.4k

client <-> server development

Apr 16 2018 11:17 PM
Hello all; new to C#. recent transfered from Java. I am a hobbiest programmer. My employer is allowing me to develop applications to learn on, and they use C# to build and run our internal software package. hence the conversion. and I have to say I like it better than Java. I want to start designing a software package, the idea is that a user (who has an exchange company email) will have a client app, that will login using thier company authentication through exchange, so identity and security on the client is easy. I want the user to connect to an app running on a server machine (does not need to be a windows server, could just be a machine on the network), the server will take the connection request, determine (from a selection made by the user on the client before requesting a connection) what "online operator" would better suit the user to chat with and establish a chat season between the two clients. I want 2 software packages. One the server that connects to a database for storing chat season, lists of users that have "special privileges - like an operator. operator meaning a specialist that would provide direction to a client. The server app would be able to queue members if more then one person needs assistance in different subjects, the queue function should be able to pass back a wait time or "number a head" to the client. there will need to be an other queue holding all members available both special and normal. Allow the client to search a particular person if they are active in any queue. lastly establish a direct connection between both clients to chat, pass files, maybe other objects. The client should one be able to search a specific person, and request chat access to that person. alternatively select a "specialty" or "Any". Then click "request assistance". after the server above chooses a suitable professional, the client should be able communicate directly with the other client. this is kind of like a tech support, one on one chat line, but with some stipulations, all clients are started equal, the server knows who is a specialist. as I'm not familiar with server client design, I was wondering if someone could get me started on the finer points of designing this system. do I start with the server or the client. I want a GUI for both the client and server. the server does not need to handle authentication except for server admin level authentication. in that case I will probably build a second admin only app to connect and perform admin duties. does anyone know of a open source project similar i can start with. or help me by guiding me in the organizing and planning of the steps needed. I have written several apps for work but all have been one on one with no connectability. ultimately I'd like to be able to include more than 2 people on a session. just direction on where to start on the design would be great, I'm assuming communication through TCP/IP would be best, I'm also thinking the clients should run as a service, but can you build a GUI around/on a service? the server has to be able to run either on the internet or within the company internet. thank you PS if this is a little confusing, I apologize, it's been a long day and I'm typing on a crap phone. ahhhh now I said phone, is like to eventually build an IOS and Android client app as well. suggestions????