This is a monorepo containing both the frontend (Next.js) and backend (Nest.js) applications for NSC EVENTS, fully migrated from MongoDB to PostgreSQL.
nsc-events-nextjs: Frontend application built with Next.jsnsc-events-nestjs: Backend API built with Nest.js + PostgreSQL + TypeORM
- Node.js 20.x or higher
- npm
- PostgreSQL 14 or higher
- pgAdmin
To get started, you can use the automated setup script for your operating system.
# Clone the repository
git clone https://github.com/SeattleColleges/nsc-events-fullstack
cd nsc-events-fullstack
# Run the setup script
bash setup-macos-linux.sh
or ./setup-macos-linux.sh# Clone the repository
git clone https://github.com/SeattleColleges/nsc-events-fullstack
cd nsc-events-fullstack
# Run the setup script
./setup-windows.batAfter running the script, you will need to:
- Configure the backend
.envfile innsc-events-nestjs/.envwith your PostgreSQL credentials. - Create a PostgreSQL database named
nsc_events.
Alternatively, you can follow the manual installation steps below.
# Clone the repository
git clone https://github.com/SeattleColleges/nsc-events-fullstack
cd nsc-events-fullstack
# Install PostgreSQL and remember your password
# Set up the backend
cd nsc-events-nestjs
cp .env.example .env
# Edit .env and update your PostgreSQL password
npm install
# Set up the frontend
cd ../nsc-events-nextjs
cp .env.example .env.local
# Update .env.local if needed
npm install- Create a PostgreSQL database named
nsc_events - Update the
.envfile innsc-events-nestjswith your PostgreSQL credentials - The database tables will be automatically created when you start the backend
Backend:
cd nsc-events-nestjs
npm run start:devFrontend:
cd nsc-events-nextjs
npm run dev# Build both applications
npm run build
# Build only frontend
npm run build:frontend
# Build only backend
npm run build:backend# Test both applications
npm run test
# Test only frontend
npm run test:frontend
# Test only backend
npm run test:backend
# Run E2E tests (requires both services running)
npm run test:e2e
# Run E2E tests with interactive UI
npm run test:e2e:uiFor more details on E2E testing, see e2e/README.md.
This repository uses GitHub Actions for continuous integration. The workflow files are located in the .github/workflows directory:
frontend-ci.yml: CI workflow for the Next.js applicationbackend-ci.yml: CI workflow for the Nest.js applicationon-pull-request.yml: Workflow that runs when a PR is opened or updatedon-new-issue.yml: Workflow that runs when a new issue is created
See the LICENSE files in each project directory for details.