Hello! 👋
This repository contains a full-stack portfolio project maintained by Michael Planu. It is an Nx monorepo holding an Angular frontend and a Fastify backend (MongoDB is used as the data store). The goal is to showcase projects and a personal timeline while providing a reproducible developer workflow.
Tech stack: Node.js, Fastify, Angular, MongoDB, Nx, pnpm, TypeScript
Contents: Brief instructions to get started, project layout, common commands, and contribution notes.
Quick Links:
- Frontend:
apps/angular-frontend - Backend:
apps/fastify-backend - Shared UI & utilities:
libs/shared-ui,libs/internal-plugin
Requirements:
- Node.js (recommended >= 18)
- pnpm (package manager used in this repo)
- (Optional) Docker if you prefer running MongoDB in a container
-
Clone the repository:
git clone <repo-url> cd portfolio-full-stack-monorepo
-
Install dependencies:
pnpm install
-
Start the apps in development mode (two common ways shown):
-
Using Nx (recommended when available):
pnpm nx serve angular-frontend pnpm nx serve fastify-backend
-
Or run project-specific scripts (check
package.jsonorproject.jsontargets):pnpm --filter angular-frontend dev pnpm --filter fastify-backend dev
Note: exact commands may vary depending on local configuration; use pnpm nx list or inspect project.json in each project folder to confirm target names.
-
Run unit tests for all projects:
pnpm nx test --all -
Run lint across the workspace:
pnpm nx lint --all
-
Build projects:
pnpm nx build angular-frontend pnpm nx build fastify-backend
Top-level folders you will work with:
apps/angular-frontend— Angular application (frontend)apps/fastify-backend— Fastify server (backend)libs/shared-ui— UI components and shared styleslibs/internal-plugin— custom Nx executors and utilities
There are also E2E and test-related projects under apps/*-e2e.
- Frontend environment files:
apps/angular-frontend/src/environments/* - Backend configuration and plugins live under
apps/fastify-backend/src/app
When running locally, ensure MongoDB is reachable. You can either run a local MongoDB instance, point the backend to a hosted DB, or run MongoDB in Docker:
docker run --name portfolio-mongo -p 27017:27017 -d mongo:6-
Keep changes focused to one feature or fix per branch.
-
Follow the existing TypeScript and Angular style used in the repo.
-
Run tests and linting locally before opening a PR:
pnpm nx test --all pnpm nx lint --all
- If you see dependency issues, run
pnpm installagain and consider clearing pnpm store:pnpm store prune. - For Nx target names or scripts, inspect
project.jsoninside the app directories.
This project includes a LICENSE.md in the repository root. Please review it for licensing details.