A modern, minimalist, and highly customizable Flutter portfolio website/application to showcase your skills, projects, and professional journey. Designed for fast setup and easy editingβeven if you're not a Flutter developer!
A portfolio website for developers built using Flutter. Includes:
- Home
- About
- Services
- Projects (Portfolio)
- Contact
- π₯οΈ Modern, clean, and minimalist UI
- π± Responsive for mobile, tablet, desktop, and web
- π¨ Smooth animations & transitions
- π οΈ Easy to customize: just edit config files!
- π¦ Cross-platform: Android, iOS, Web, Windows, macOS, Linux
- β‘ SEO optimized for web
- π Social media & email/WhatsApp integration
- π§βπΌ Business ready: contact forms, service detail modals, project showcase
π Website: https://ahsanzaman.dev
π± Android APK: Direct Download
π GitHub: ahsxndev/myfolio
-
Clone the repository
git clone https://github.com/ahsxndev/Portfolio.git cd Portfolio -
Install dependencies
flutter pub get
-
Run the app
flutter run
-
Customize config files
lib/core/config/user_info_config.dartβ your infolib/core/config/projects_config.dartβ your projectslib/core/config/social_links_config.dartβ your socials
- Personal Info: Edit your name, job title, email, phone in
user_info_config.dart - Projects: Add/edit projects in
projects_config.dart - Social Links: Update your social profiles in
social_links_config.dart - Images: Replace profile and project images in
assets/images/
This portfolio includes a contact form that sends emails via EmailJS. Follow these steps to set up email functionality:
- Go to emailjs.com and sign up for a free account
- Verify your email
- In the EmailJS Dashboard, go to Email Services (left sidebar)
- Click Create New Service
- Choose your provider (Gmail, Outlook, etc.)
- Follow the setup wizard and Save
- Copy your Service ID (looks like
service_xxxxx)
- Go to Email Templates (left sidebar)
- Click Create New Template
- Use this template structure:
<h2>New Portfolio Contact</h2>
<p><strong>From:</strong> {{name}} ({{email}})</p>
<p><strong>Service:</strong> {{service_type}}</p>
<h3>Message:</h3>
<p>{{message}}</p>
<hr>
<p><em>This message was sent from your portfolio website.</em></p>- Set To Email to
{{to_email}}or your actual email - Set Reply-To to
{{email}}(so you can reply directly to the sender) - Click Save
- Copy your Template ID (looks like
template_xxxxx)
- Go to Account (left sidebar) β API Keys
- Copy:
- Public Key (User ID)
- Private Key (Access Token)
Edit lib/core/config/emailjs_config.dart:
class EmailJSConfig {
static const String serviceId = 'service_xxxxx'; // Your Service ID
static const String templateId = 'template_xxxxx'; // Your Template ID
static const String userId = 'YOUR_PUBLIC_KEY'; // Your Public Key
static const String privateKey = 'YOUR_PRIVATE_KEY'; // Your Private Key
}- Run the app:
flutter run - Go to the Contact section
- Fill in the form and send
- Check your email!
| Error | Solution |
|---|---|
| 403 - API calls disabled | Ensure you have the correct Private Key in emailjs_config.dart |
| 400 - Parameters invalid | Check that template variable names match (use {{name}}, {{email}}, {{message}}) |
| Email not received | Verify your Service ID and Template ID are correct |
- Web:
flutter build web --release - Android:
flutter build apk --release - iOS:
flutter build ios --release
Deploy web app to GitHub Pages or Firebase Hosting easily!
This project is licensed under the MIT License - see the LICENSE file for details.
Pull requests, issues, and suggestions are welcome!
Fork, star, and contribute your awesome ideas.
- Flutter team
- Font Awesome
- Google Fonts
- All open-source contributors