Threadly — CVWO Winter Assignment AY24/25

A web forum for NUS computing students, built for the CVWO Winter Assignment.

A web forum developed for the CVWO Winter Assignment AY24/25. Threadly is designed for NUS computing students to foster discussions and exchange ideas on various topics.

Tech Stack

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

Features

  • An authentication system where users are authenticated by their username and password.
  • The ability to perform basic CRUD operations (Create, Read, Update, Delete) for forum threads and comments.
  • A category/tagging system to categorise threads so 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 also installs 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. Note down the username and password to access the MySQL server when installing.

Install Git (to clone the repo):

  • Download and install Git.

Steps to set up the application

  1. Clone the repository:
git clone https://github.com/kailermai/Threadly
  1. Change into the 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. The schema will be created according to the DB_NAME specified.

  2. Start the backend server:

go run main.go
  1. Run the application. Open the frontend in your browser (http://localhost:5173) and ensure the backend API is accessible (http://localhost:8000).