A modern, responsive personal portfolio built with Next.js, TypeScript, and Tailwind CSS. Features a bilingual interface (English/French) with smooth animations and a professional design.
- π Bilingual Support: English and French language switching
- π¨ Modern Design: Clean, professional dark theme with smooth animations
- π± Responsive Layout: Optimized for all devices and screen sizes
- β‘ Performance: Built with Next.js 14 for optimal performance
- π Smooth Animations: Framer Motion powered hover effects and transitions
- π Theme Support: Dark mode with elegant color scheme
- π Resume Download: Language-specific PDF downloads
- π SEO Optimized: Meta tags and structured content
- Next.js 14 - React framework with App Router
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first CSS framework
- Framer Motion - Animation library
- Lucide React - Beautiful icons
- CSS Modules - Component-scoped styling
- Responsive Design - Mobile-first approach
- Custom Components - Reusable UI components
- Hover Effects - Interactive card animations
- ESLint - Code quality and consistency
- PostCSS - CSS processing
- TypeScript Config - Strict type checking
- Node.js 18+
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/yourusername/portfolio.git cd portfolio -
Install dependencies
npm install # or yarn install -
Run the development server
npm run dev # or yarn dev -
Open your browser Navigate to http://localhost:3000
npm run build
npm startportfolio/
βββ app/ # Next.js App Router
β βββ layout.tsx # Root layout component
β βββ page.tsx # Home page component
β βββ globals.css # Global styles
βββ components/ # React components
β βββ ui/ # Reusable UI components
β βββ hooks/ # Custom React hooks
β βββ *.tsx # Feature components
βββ lib/ # Utility functions
β βββ messages.json # Bilingual content
β βββ utils.ts # Helper functions
βββ public/ # Static assets
β βββ EN_Mansour_FullStackDeveloper.pdf
β βββ FR_Mansour_FullStackDeveloper.pdf
βββ package.json # Dependencies and scripts
The portfolio supports multiple languages through a custom localization system:
- English (en): Default language
- French (fr): Secondary language
- Dynamic Content: All text content switches seamlessly
- Resume Downloads: Language-specific PDF files
- Smooth Transitions: Animated language switching
- Update
lib/messages.jsonwith new language content - Add language option to the locale switcher
- Include corresponding resume PDF in the public folder
- Primary colors defined in Tailwind config
- Dark theme with accent colors
- Consistent color scheme throughout
- Modular component architecture
- Easy to customize and extend
- Reusable UI patterns
- Configurable animation delays
- Smooth hover effects
- Performance-optimized transitions
- Mobile First: Designed for mobile devices first
- Breakpoints: Tailwind CSS responsive utilities
- Flexible Layout: Adapts to all screen sizes
- Touch Friendly: Optimized for touch interactions
- Connect your GitHub repository to Vercel
- Configure build settings
- Deploy automatically on push
- Netlify: Static site deployment
- AWS S3: Cloud hosting
- Custom Server: Node.js hosting
The portfolio automatically serves the correct resume based on the current language:
- English:
EN_Mansour_FullStackDeveloper.pdf - French:
FR_Mansour_FullStackDeveloper.pdf
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Mansour Ben Mansour
- Full Stack Developer
- Specializing in React, Next.js, and modern web technologies
- Based in Tunis, Tunisia
- Next.js Team - For the amazing framework
- Tailwind CSS - For the utility-first CSS approach
- Framer Motion - For smooth animations
- Lucide - For beautiful icons
- Email: mansour.benmansour@esprit.tn
- Phone: +216 29 598 701
- Location: Tunis, El Aouina, 4230 Tunisie
β Star this repository if you found it helpful!
Made with β€οΈ by Mansour Ben Mansour