A modern, responsive portfolio website built with React, TypeScript, and Vite. Features both full-stack and static deployment options.
- Frontend: React 18 + TypeScript + Vite + Tailwind CSS
- UI Components: shadcn/ui
- Backend: Express + TypeScript (optional)
- Database: PostgreSQL with Drizzle ORM (optional)
- Deployment: GitHub Pages / Full-stack hosting
- Node.js 18+
- npm or yarn
- PostgreSQL (for full-stack mode only)
# Install dependencies
npm install# Start development server on port 5003
PORT=5003 npm run devnpm run dev- Start development servernpm run build- Build for production (full-stack)npm run build:github- Build for GitHub Pages deploymentnpm run start- Run production servernpm run check- TypeScript type checkingnpm run lint- Run ESLintnpm run format- Format code with Prettiernpm run db:push- Push database schema changes
This site is configured to deploy to GitHub Pages at https://stefania11.github.io
To deploy:
-
Commit all changes to main branch:
git add . git commit -m "Your commit message" git push origin main
-
Run the deployment script:
./deploy.sh
The script will:
- Build the static site with GitHub Pages configuration
- Create a temporary
gh-pagesbranch - Push the build to GitHub Pages
- Clean up and return to main branch
Your changes will be live in 2-5 minutes at https://stefania11.github.io
For full-stack deployment with database support:
- Set up PostgreSQL database
- Configure
DATABASE_URLenvironment variable - Run
npm run build - Deploy the
distfolder to your hosting provider
/client/src/
├── components/ # React components
├── pages/ # Route pages
├── data/ # Content data (content.ts)
├── hooks/ # Custom React hooks
└── styles/ # CSS files
/server/ # Express backend (optional)
/public/ # Static assets
Main content is stored in /client/src/data/content.ts. Edit this file to update:
- About section
- Research projects
- Portfolio projects
- Talks
- Publications
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License.