Design your world β Mappic.app is a web application for creating fully customizable poster designs from maps.
Design your world.
Mappic is a creative web application that lets you generate beautiful, fully customizable map-based poster designs. Choose any location in the world, customize every detail with multiple styles and themes, and export print-ready designs.
With Mappic, you can create stunning visual representations of your favorite places, perfect for home decor, gifts, or personal projects.
π https://mappic.app
shared/services/# Clone the repository
git clone https://github.com/BasBravo/Mappic.git
cd Mappic
# Install dependencies
npm install
# or
pnpm install
Create a .env.local file in the root directory:
# Firebase Configuration
NUXT_PUBLIC_FIREBASE_API_KEY=your_api_key
NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain
NUXT_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
NUXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket
NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
NUXT_PUBLIC_FIREBASE_APP_ID=your_app_id
See .env.example for all available options.
npm run dev
# or
pnpm dev
The application will be available at http://localhost:3000
npm run build
# or
pnpm build
npm run preview
# or
pnpm preview
# Unit tests
npm run test:unit
# Component tests
npm run test:nuxt
# All tests
npm run test
# Lint code
npm run lint
# Fix linting issues
npm run lint:fix
# Format code
npm run format
# Type checking
npm run typecheck
# Full validation (pre-push)
npm run validate
mappic/
βββ app/ # Nuxt application
β βββ components/ # Reusable UI components
β βββ composables/ # Business logic hooks
β βββ pages/ # Route pages
β βββ layouts/ # Layout templates
β βββ plugins/ # Nuxt plugins
β βββ middleware/ # Route middleware
β βββ utils/ # Utility functions
β
βββ shared/
β βββ services/ # Firebase services layer
β βββ file.ts # File operations
β βββ map.ts # Map operations
β βββ auth.ts # Authentication
β βββ ... # Other services
β
βββ stores/ # Pinia stores (global state)
βββ types/ # TypeScript type definitions
βββ helpers/ # Helper functions
βββ public/ # Static assets
βββ nuxt.config.ts # Nuxt configuration
βββ tsconfig.json # TypeScript configuration
βββ tailwind.config.js # Tailwind CSS configuration
Components (UI)
β uses
Composables (Business Logic)
β uses
Stores (State) + Services (Firebase)
β uses
Firebase (Firestore + Storage)
Key Principles:
All Firebase operations are centralized in shared/services/:
Services automatically normalize Firebase Storage URLs to ensure consistency across the application.
projectbrief.md β Project overview and goalsproductContext.md β Product features and data structuresystemPatterns.md β Architecture and design patternstechContext.md β Technical stack and configurationactiveContext.md β Current state and decisionsprogress.md β Development progress and roadmapContributions are welcome! Please follow these guidelines:
Fork the repository and create a feature branch
git checkout -b feature/your-feature-name
Follow the coding standards in AGENTS.md
Write tests for new features
npm run test
Validate your code before pushing
npm run validate
Create a Pull Request with a clear description of changes
# Create feature branch
git checkout -b feature/amazing-feature
# Make changes and commit
git add .
git commit -m "feat: add amazing feature"
# Push to your fork
git push origin feature/amazing-feature
# Create Pull Request on GitHub
This project is licensed under the MIT License β see the LICENSE file for details.
You are free to use, modify, and distribute this software for any purpose, commercial or personal.
BasBravo
Made with β€οΈ by BasBravo
Design your world with Mappic.