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.
- Author: Mai Kai Ler
- Date of submission: 26/01/25
- Writeup (PDF)
- Screenshots gallery
- Repos: Frontend · Backend
Tech Stack
| Component | Tech |
|---|---|
| Frontend | React with TypeScript |
| Backend | Go |
| Database | MySQL |
| Misc | Adobe 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
- Clone the repository:
git clone https://github.com/kailermai/Threadly
- Change into the frontend directory:
cd frontend
- Install dependencies:
npm install
- Start the development server:
npm run dev
- Set up the backend:
cd ../backend
go mod tidy
- Create a
.envfile from the template.env.examplefile:
cp .env.example .env
-
Edit the
.envaccording to the instructions in the template. The schema will be created according to theDB_NAMEspecified. -
Start the backend server:
go run main.go
- Run the application. Open the frontend in your browser (
http://localhost:5173) and ensure the backend API is accessible (http://localhost:8000).