Skip to content

Mauricifj/portfolio

Repository files navigation

Portfolio

A modern, responsive portfolio website built with Flutter, showcasing professional experience, education, and projects.

Features

  • 🌍 Internationalization: Support for multiple languages (English, Portuguese, Spanish, French, German)
  • 🎨 Theme Support: Light, dark, and system theme modes
  • 📱 Responsive Design: Optimized for mobile, tablet, and desktop
  • 🎭 Smooth Animations: Beautiful transitions using Flutter Animate and custom constants
  • 🎯 Modern UI: Clean design with Google Fonts and Font Awesome icons
  • 🚀 Cross-Platform: Runs on Web, iOS, Android, macOS, Linux, and Windows
  • 🔍 SEO Optimized: Meta tags and Open Graph support for better social sharing
  • 📡 Offline Support: Remote data fetching with automatic local fallback
  • 🔗 Share Functionality: Native share capabilities

Tech Stack

  • Framework: Flutter 3.10.1+
  • Languages: Dart
  • Key Packages:
    • flutter_animate - Smooth animations
    • google_fonts - Beautiful typography
    • font_awesome_flutter - Icon library
    • url_launcher - External link handling
    • intl - Internationalization support
    • share_plus - Native sharing
    • meta_seo - SEO and meta tags
    • http - Remote data fetching

Project Structure

lib/
├── design_system/       # Design tokens and components
│   ├── components/      # Reusable UI components
│   ├── animations.dart  # Animation constants
│   ├── breakpoints.dart
│   ├── colors.dart
│   ├── spacings.dart    # Spacings and elevations
│   ├── theme.dart
│   └── typography.dart
├── l10n/                # Localization files
├── models/              # Data models
├── pages/               # Application pages
│   └── sections/        # Page sections
├── repositories/        # Data repositories
└── main.dart            # App entry point

Getting Started

Prerequisites

  • Flutter SDK 3.38.0 or higher
  • Dart SDK 3.10.0 or higher
  • FVM (Flutter Version Management) - recommended

Installation

  1. Clone the repository:
git clone <repository-url>
cd portfolio
  1. Install dependencies:
flutter pub get
  1. Generate localization files:
flutter gen-l10n

Or simply run:

flutter pub get

This will automatically generate localization files based on l10n.yaml configuration.

  1. Generate launcher icons (optional):
flutter pub run flutter_launcher_icons
  1. Generate splash screen (optional):
flutter pub run flutter_native_splash:create

Running the App

Using Flutter directly:

Web:

flutter run -d chrome

Desktop (macOS):

flutter run -d macos

Desktop (Linux):

flutter run -d linux

Desktop (Windows):

flutter run -d windows

Mobile:

flutter run

Using FVM (recommended):

Web:

fvm flutter run -d chrome

Desktop/Mobile:

fvm flutter run

Building for Production

Web:

flutter build web

macOS:

flutter build macos

Linux:

flutter build linux

Windows:

flutter build windows

Development

Adding a New Language

  1. Add the locale to lib/models/app_language.dart
  2. Create a new ARB file in lib/l10n/app_<locale>.arb (e.g., app_fr.arb for French)
  3. Add all translation strings matching the keys in app_en.arb
  4. Generate localization files:
flutter gen-l10n

Or:

flutter pub get

Design System

The app uses a centralized design system located in lib/design_system/:

  • Colors: Brand colors, theme colors, and shimmer colors
  • Typography: Text styles using Google Fonts
  • Spacings: Consistent spacing values and elevations
  • Animations: Centralized animation durations and curves
  • Components: Reusable UI components

Configuration Files

  • flutter_launcher_icons.yaml - App icon configuration
  • flutter_native_splash.yaml - Splash screen configuration
  • l10n.yaml - Localization configuration

License

This project is private and not open for public use.

Author

Maurici Ferreira Junior

About

A responsive portfolio website built with Flutter Web to showcase my skills and experience. Features a modern design, smooth animations, and multi-language support.

Resources

License

Stars

Watchers

Forks

Contributors

Languages