COSC-499-W2023 / year-long-project-team-10

year-long-project-team-10 created by GitHub Classroom
Other
0 stars 1 forks source link

TheSomethingSomethingCompany

The purpose of our system is to provide professionals a platform to connect, communicate and share media. This includes text messages, documents, images & videos. Our system prioritizes the security of the data and privacy of the user. Optionally, our app also provides users with the option to blur the contents of uploaded videos to hide the identities of people in those videos to protect their privacy.

Tech Stack

The following tech stack was chosen due to our need for adaptability, optimization, SEO optimization and security:

Front-End Technologies

Next JS TailwindCSS TypeScript CSS3

Back-End Technologies

Express.js

Version Control

Git GitHub

Database & Database Management Systems

Postgres Supabase

Hosting

Docker AWS NodeJS Python

Package Managers

NPM

Pre-Requisites

Before you can install our app, you must have the following pre-requisites:

Services Version
Node.js > 21.6.2
NPM > 10.5.0
Docker Desktop > 4.28.0
aws-cli > 2.0.0
Python > 3.11
Git > 2.39.3

Installation

The recommend way to install our system is to use the steps below:

  1. Clone the Repository
git clone https://github.com/COSC-499-W2023/year-long-project-team-10.git
  1. Navigate into year-long-project-team-10/app/. Install system dependencies:
npm install
  1. Open Docker. Start the docker containers using a terminal of your choosing:
docker-compose up [-d]
  1. The system will be live @ localhost:3000

  2. Lets Setup Supabase. Go to https://supabase.com/ and create an account. Then create a new Oranization and then under that organization Create a new project. Give this project a name and password. Remember this password as it will be important in the future. Once the project has been setup, go to SQL Editor in the left menu. Here copy and paste the database schema found under DDL in out project Root direcory. This will initialize the database. Next, create a file called .env.local in the Root of the project. Here create 5 variables called PASS_HASH, HOST, PORT, DATABASE, USER and DBPASSWORD. Initialize PASS_HASH to a strong key. This will be used to encrypt your passwords. Going back to Supabase, go to Project Settings in the left menu and select Database. Here initialize the values of the aforementioned vairables to the values of the same name on the right. Finally, create an .env file in the root of the website. Here create a variable named DATABASE_URL and set its value to the connection string found in the same page as above replacing the missing value in the string as needed. The database has now been setup and conencted!

Direct AWS hosted website access

http://499-new-lb-420614602.ca-central-1.elb.amazonaws.com/