Threadly

A web forum developed for CVWO Winter Assignment AY2425. Threadly is designed for NUS computing students to foster discussions and exchange ideas on various topics.
Name: Mai Kai Ler
Data of submission: 26/01/25

Writeup

Screenshots

Click to view screenshots of threadly

Tech Stack

ComponentTech
FrontendReact with Typescript
BackendGo
DatabaseMySQL
MiscAdobe Express (website logo)

Features

  • An authentication system where users are authenticated by their user name and password.
  • The ability to perform basic CRUD operations for forum threads and comments. CRUD is an acronym for Create, Read, Update and Delete.
  • A category/tagging system to categorise threads so that they are easier to search for through filtering.

Installation guide

Prerequisites

Install Node.js and npm (for the frontend):

  • Download and install Node.JS. This will also install npm.
  • Verify installation:
node -v
npm -v

Install Go (for the backend):

  • Download and install Go from golang.org.
  • Verify installation:
go version

Install MySQL (for the database):

  • Download and install MySQL Community Server from MySQL’s official website. Note down the username and password to access the MySQL server when installing

Install Git (to clone repo):

  • Download and install Git.

Steps to Set Up the Application

  1. Cloning the repository
git clone https://github.com/TOBECHANGED
  1. Change into frontend directory
cd frontend
  1. Install dependencies
npm install
  1. Start the development server
npm run dev
  1. Set Up the Backend
cd ../backend
go mod tidy
  1. Create a .env file from the template .env.example file.
cp .env.example .env
  1. Edit the .env according to the instructions in the template
  • Schema will be created according to DB_NAME specified
  1. Start the backend server
go run main.go
  1. Run the Application
    Open the frontend in your browser (http://localhost:5173)
    Ensure the backend API is accessible (http://localhost:8000)