Blog

CSCI-4208 Final Project Server Design

Posted April 23, 2021

REST API:

Route Method Description
/api/chat/new GET New message: Creates a new message to send to a user
/api/chat/view GET Chats: Gets all the conversations the user has had with other users
/api/chat/view/user GET Profiles: Gets the other user's profile information
/api/chat/home GET Homepage: Gets the current status of friends list (online or offline); displays if you have had a previous conversation with them as well

Server Logic:

The user will register with a username and password that the server will store, redirecting the user to a login screen where they will be able to login (and not register again), which will then redirect them to the home location (homepage of the app) to see their data. When chatting with another user, the server will transport and display the messages using a socket connection.

Server Fetches:

The user will register using POST which allows the user information to be fetched from the database at sign-in. When logging in and whether they entered the correct login information, the user will enter their credentials in order to GET access their account from the database. The user will have friends, therefore friend requests will be available. Using POST the friend request will be sent to the targeted account allowing them to accept or deny the request. After the login process is completed and friend requests have been accepted the user will be able to chat amongst friends and different groups. The chatting process will use POST to send messages and GET will be used so the recipient can read the sent messages.

Tooling and Libraries

All external tools and libraries used are as follows:


CSCI-4208 Final Project Client Design

Posted April 16, 2021

Client Logic:

JavaScript's logic and data processing responsibilities will include the following features:

Server Fetches:

All expected server requests will include the following:

Tooling and Libraries:

All external tools and libraries used are as follows:



CSCI-4208 Final Project Specifications

Posted April 9, 2021

User Stories

A regular user will be able to log in to the app (or register if they do not have an account), see a list of their chats, and talk to other users.

An administrator has the abilities of a regular user, plus the ability to view data of the app, such as how many users are signed up, how many are active, etc.



Frontend Features

The user will encounter a login screen to login with their username and password in order to access their chats. If they are new to the app, they will have to register to create an account. Once logging in, the user will see a display of their chats with different users on the left side of their window in a panel. When a user clicks on another user, their messages will appear. If they have never contacted the other user before, their message screen will be blank. They will also be able to see which users are online and offline, available or unavailable.



Backend Features

The server will have to authenticate the user or register the user. The server will send and receive (display) messages from one user to another in order to make the communication actually happen.



Database Features

The database will have to store the user’s information, username and password, so the user can login and not have to re-register every time. The database will also have to store user-to-user messages in order to have a conversation history.


CSCI-4208 Final Project Proposal

Posted April 2, 2021

Our proposed idea for a full stack app is creating a chat application. With the little amount of time we will have to implement the idea, we decided this would be the best way to go. Chat applications are something that we use on a daily basis, whether it be Discord, WhatsApp, Facebook Messenger, etc. They are an easy way to communicate with others remotely and can be convenient, especially nowadays with Covid-19. Although there are many chat applications out there that do many of the same things, we believe that user experience and user interface design are two major features to consider when someone decides on which app they prefer. Our goal for our chat application is to fulfill these two features using the knowledge we are learning in our Web Application course.

Abstract: As a team we will create a chat application. Similar to Discord and other applications, the app will solve several issues. It will be the solution for students and friends to talk during the pandemic. This application will also solve the hideous difficulty of finding groups a user would like to be a part of, may that be any topic such as programming or video games. The audience for this app will gear towards groups of long time friends and students that will need to connect with classmates and teachers as well as streamers/gamers. The features of this app will be as follows: