This repository is made with 💙 by Chris Francis, Amey Kulkarni and Me (Shivam Sahni)
In this directory, we have implemented server side functions.
- server.cpp: Starts the server, listens for the client side connection. Once it obtains a connection, it spawns a new thread to handle the client.
- server.hpp: Contains all the important definitions, structs and functions used by the server.
- handle_client.cpp: Contains all the functions and some of the helper functions needed by handle before he has logged in to his account.
- logged_in.cpp: Contains all the functions that allow the user to perform all those actions once they have just logged in, such as create a class, enroll, join into a class, etc.
- instructor.cpp: Contains the functions that the instructor needs in order to perform various actions once he has entered a particular classroom (where he is the instructor).
- student.cpp: Contains the functions that the student needs in order to perform various actions once he has entered a particular classroom (where he is a student).
- chat_server.cpp: Contains the functions that are required to make the live chat work, after the instructor starts it.
- data_transfer.cpp: Contains functions that help in file-handling. Each time a function wants to either send or receive data from the client, the functions in this file are called.
- helper.cpp: Contains helper not related to data transfer. They help making the code manageable.
- filesystem.cpp: Contains functions that create entries in the filesystem that we maintain on the server end.
In this directory, we have implemented client side functions.
- client.cpp: Contains code for initializing the client and setting up a connection with the server.
- handle.cpp: Handles the send and receive functions to communicate with the server. It is also responsible to take in commands from the user.
- logging.cpp: Handles the client's logged in and logged out states. Contains two functions, one for logging in and another for reigstering a new user.
- entering.cpp: Handles the outline view of the user's classes. Contains functions to view coursrs and enroll or enter a course.
- instructor.cpp: Handles the Instructor's features for a particular course.
- student.cpp: Handles the Student's features for a particular course.
- chat_client.cpp: Handles the chat utility in the client. Innitates a new connection for connection with the chat server.
- enc.cpp: Handles the encryption of the user credentials using substitution cypher.
To compile server and client binaries use:
make all
To run the server:
./server_src/server <ip-address>
Example:
./server_src/server 127.0.0.1
To run the client:(use the port number 8080)
./client_src/client <ip-address> 8080
Example:
./client_src/client 127.0.0.1 8080
To run the Mininet topology and test code, use:
make mininet
To clean up, use
make clean
At all points, the terminal will guide with your list of available commands, and what they can be used for. Follow the instructions, try not to type commands that are not allowed at the given point.