Skip to content
A full stack chat application using Flask, Python, Javascript, C, and HTML/CSS.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
chat-server
client
file-server
web
README.md

README.md

Chat Server

This project reflects a conglomeration of a number of projects that I put together to built a full end to end chat server. The project includes 4 major parts:

  • Flask Web Application
  • Command line interface (text client)
  • Chat Server
  • File Server

Design:

  • To keep everything simple I designed this system to run in memory instead of in a database. User information is stored in a CSV where passwords are encrypted using Fornet.
  • The file server was written in C to speed up file upload and download times. All files are encypted and stored in user-files folder on client side(currently does not work in web app)
  • The Flask framework was used to built the front end web application with nessescary added javascript for parts like channel display.
  • I wrote the chat server and command line interface in python as it is my best language and was the quickest to develop.

Features

  • Basic Chat
  • Channel Chat
  • Private messages and encrypted chat (CLI only)
  • Channel topic and set topic
  • Create account
  • Change password
  • Channel Admin privledges
  • Ban and block users (CLI only)
  • Upload, update, and download file (CLI only)

To run:

  • to come

Todo

  • Make web application and text client run similtaneously
  • Clean up decprecated code in state.py
  • Finish Web application functionality
You can’t perform that action at this time.