Personal website and application for Christopher Bell. The project combines a Spring Boot backend with a vanilla JavaScript frontend (Webpack + Web Components).
website– Spring Boot application and frontend. Contains all Node tooling.cbell-lib– Reusable Java library shared across applications.
- Java 21 (JDK)
- Node.js 18+
- npm 9+
- MongoDB
# Install frontend dependencies and build assets
cd website
npm install
npm run build
# From the repo root
./gradlew :website:build- Start MongoDB (default local profile expects
mongodb://localhost:27019). - Run the app:
./gradlew :website:bootRunNotes:
- The default Spring profile is
local(seewebsite/src/main/resources/application.yml). application-local.ymlsets the server port to8081.- To override config, use environment variables such as
SPRING_PROFILES_ACTIVE=localandSPRING_DATA_MONGODB_URI=....
Post reports are stored in the database and visible in Back Office for admins.
- Build static assets and the runnable JAR:
cd website
npm ci
npm run build
cd ..
./gradlew :website:build- Configure production settings (MongoDB URI, ports, secrets) via environment variables:
SPRING_PROFILES_ACTIVE=prodSPRING_DATA_MONGODB_URI=mongodb://<host>:<port>/<db>SERVER_PORT=8080(optional override)
- Run the JAR produced under
website/build/libs/:
java -jar website/build/libs/<jar-name>.jarEach module also has its own README with additional details.


