Code Monkey home page Code Monkey logo

esc101-project-track's Introduction

Chat Application

ESC101 Advanced Track Project

This project aims to provide basic chat functionality to a certain group of people. This project is for ESC101A (Introduction to Computing).

Mentored by: Govind Gopakumar (@govg)

Deployed On:

Chat-Application

Timeline

  • 25th February: Learnt how Websockets work, and how we require a HTTP server to serve requests from a browser. Used an implementation of a webserver in Python, SimpleWebSocketServer.

  • 27th February: Added basic Frontend elements, still need to figure out the complete Frontend layout. Urgent TODO: Form the backend quickly

  • 1st March: Changing backend server from Python to a NodeJS HTTP Server, front-end remains some. Decision taken due to a lot of shortcomings using a Python backend, such as poor support of handling events, etc. (Would have to use a lot of libraries and still would not have got the required result)

  • 4th March: Basic layout completed, need to add authentication and rooms option needs to be integrated with Frontend. Approximating deadline as 8th March for this.

  • 6th March: Implementing Passport.js for session rememberance, and authentication. Quite a lot of work. Working on Routes, since if authentication is added, the server needs to handle if someone unauthenticated doesn't get sensitive (:P) information.

  • 27th March: Fixed up a lot of things, implemented Passport.js and sessions completely.

  • 10th April: Implememted room-wise history of messages, and improved GUI.

  • 15th April: Deployed the App to Heroku, and wrote some test cases.

Basic File Structure

.
├── chat-app
│   ├── app.js
│   ├── bin
│   │   └── www
│   ├── config
│   │   ├── database.js
│   │   └── passport.js
│   ├── models
│   │   ├── chat.js
│   │   ├── room.js
│   │   ├── roomModel.js
│   │   └── user.js
│   ├── npm-debug.log
│   ├── package.json
│   ├── public
│   │   ├── images
│   │   │   └── user.jpg
│   │   ├── javascripts
│   │   │   └── script.js
│   │   └── stylesheets
│   │       └── style.css
│   ├── routes
│   │   └── index.js
│   ├── test
│   │   ├── database_checks.js
│   │   └── server_checks.js
│   └── views
│       ├── chatroom.ejs
│       ├── error.ejs
│       ├── index.ejs
│       ├── login.ejs
│       ├── rooms.ejs
│       └── signup.ejs
└── README.md

Unit Testing

Tests have been implemented using the Mocha library, and Chai-assertion library.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.