Skip to content

hobbiton-hobbits/cloudcraft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

211 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CloudCraft

CloudCraft is a real-time chat and task manager application designed for organizations to assist in team communication and task management. Our team was tasked to create a responsive and minimalistic chat application for users to improve productivity and increase collaboration across team members. Our team challenged ourselves with new technologies such as socket.io for communication between users, bcrypt for user authentication, and recoil for global state storage.

Table of Contents

Features

User Login

Each user will need to create an account with a unique username and password. Once logged in users will stay logged in on page refresh and will only need to log in again after leaving the page for 10 minutes.

User list

The user list contains a list of users the logged-in user can chat with. The user currently being chatted with, if any, is highlighted.

Group list

The group list contains a list of groups the logged-in user is a member of and can chat with. The group currently being chatted with, if any, is highlighted. Users can create their own groups by adding at least 2 other members to a group and all members will be automatically added to the group.

Current chat

The chat with the currently-selected user is displayed in the main pane. Messages are shown and updated in real time. When another user is typing, other members of the current chat can see what the user is typing. Users can edit their own messages and delete them. All messages can be added to the task list on the left side.

Task list

The task list displays all the tasks for the current user. Tasks can be associated with a message or created by the user. Tasks can also be sorted by dragging the task into position on the list. Tasks can be checked off to indicate completion, once marked completed the task is moved to the bottom half of the list.

Tech Used

React PostgreSQL Node Express Axios AWS Socket.io Recoil Bcrypt JWT

Developement

Pre-installation Requirements

Node v16.14.2
NPM v8.5.0

Environment Variables Management

This project uses dotenv.

When using this application, you will need to create a .env file with the following information.

.env file requirements
PORT= Port number of postgres server
NAME= Name of postgres user
PASSWORD= Postgres user password
HOST= URL of postgres server
DATABASE= Name of postgres database
SERVERPORT= Port number for this application
AUTHPORT= Port number of authentication server
AUTHDATABASE= Database name of authentication server
AUTHHOST= URL of authentication server
ACCESS_TOKEN_SECRET= Token for accessing authentication
REFRESH_TOKEN_SECRET= Token for refreshing tokens

Installation

Installation instructions

Install dependencies

npm install

Bundle files

npm run build

You will need an available postgres database to run this application.

Run the following files to programmatically create the needed tables

server/authdb/makeAuthTable.js
server/db/makeTables.js

Run the servers

npm run auth-server 
npm run dev-server

Contributors

User Login - Alexander Lee and Christopher Garcia
User List & Group List - Daniel Shin
Current Chat - Yong Tang, Daniel Shin, and Brian Vose
Task List - James Anderson

About

Real-time chat and task manager application for organizations

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors