A modern, responsive portfolio website built with Angular and NestJS. This full-stack application showcases projects, technologies, and provides a contact form with email functionality.
This is a monorepo containing two main applications:
- portfolio_ui - Frontend application built with Angular 19
- portfolio_api - Backend API built with NestJS
- Responsive design optimized for all devices
- About section with personal introduction
- Technologies showcase highlighting skills and tools
- Projects gallery displaying portfolio work
- Contact form with email integration
- Mobile-friendly navigation
- Footer with social links
- Angular 19 - Modern web framework
- TypeScript - Type-safe JavaScript
- SCSS - Powerful CSS preprocessor
- ngx-toastr - Toast notifications
- RxJS - Reactive programming
- NestJS - Progressive Node.js framework
- TypeScript - Type-safe development
- Nodemailer - Email sending functionality
- Throttler - Rate limiting for API endpoints
- ConfigModule - Environment configuration management
- Node.js (v18 or higher recommended)
- npm or yarn package manager
git clone https://github.com/yourusername/portfolio.git
cd portfoliocd portfolio_ui
npm installcd portfolio_api
npm installCreate a .env file in the portfolio_api directory:
SMTP_HOST=your_smtp_host
SMTP_USER=your_smtp_user
SMTP_PASS=your_smtp_password
SMTP_SECURE=truecd portfolio_ui
npm startThe application will be available at http://localhost:4200
cd portfolio_api
npm run start:devThe API will be available at http://localhost:3000
cd portfolio_ui
npm run buildThe build artifacts will be stored in the dist/ directory.
cd portfolio_api
npm run build
npm run start:prodnpm start- Start development servernpm run build- Build for productionnpm test- Run unit testsnpm run watch- Build in watch mode
npm run start:dev- Start development server with hot reloadnpm run start:prod- Start production servernpm run build- Build the applicationnpm test- Run unit testsnpm run test:e2e- Run end-to-end testsnpm run lint- Lint and fix codenpm run format- Format code with Prettier
POST /email/send
Send a contact form email.
Request Body:
{
"firstName": "John",
"lastName": "Doe",
"email": "john@example.com",
"message": "Your message here"
}Rate Limiting: 2 requests per 60 seconds
- Header - Main header with branding
- Navigation - Responsive navigation menu
- About - Personal introduction section
- Technologies - Skills and technologies showcase
- Projects - Portfolio projects display
- Contact - Contact form with validation
- Footer - Footer with links and information
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is private and unlicensed.
Szymon Sulejczak - contact@szymonsulejczak.com
Project Link: https://github.com/yourusername/portfolio