programming-personality Svelte Themes

Programming Personality

A fun, interactive quiz that helps you discover which programming language best matches your MTBI personality.

Programming Language Personality Test šŸš€

A fun, interactive web application that helps you discover which programming language best matches your personality! Built with SvelteKit, TypeScript, and deployed to GitHub Pages.

šŸŽÆ Live Demo

Visit the live application at: https://repobirdbot.github.io/programming-personality/

🌟 Features

  • MBTI-Based Assessment: Two-phase quiz combining personality typing with language matching
  • 42 Programming Languages: Curated list with dual MBTI mappings for better personality matches
  • Adaptive Questioning: Dynamic questions based on your MBTI personality type
  • Improved Distribution: Languages support 1-2 MBTI types, ensuring all 16 personalities have options
  • Share Your Results: Social sharing buttons for Twitter, LinkedIn, WhatsApp, and Reddit
  • Shareable Links: Copy and share unique URLs that display your quiz results
  • Beautiful UI: Modern, responsive design with smooth animations
  • Type-Safe: Built with TypeScript for reliability
  • Fast & Static: Deployed as a static site for instant loading

šŸ› ļø Technology Stack

  • Framework: SvelteKit 2.0
  • Language: TypeScript
  • Styling: CSS with modern gradients and animations
  • Build Tool: Vite
  • Deployment: GitHub Pages with GitHub Actions
  • Code Quality: ESLint + Prettier

šŸ“¦ Installation

  1. Clone the repository:
git clone https://github.com/[your-username]/programming-personality.git
cd programming-personality
  1. Install dependencies:
npm install
# or
make install
  1. Start the development server:
npm run dev
# or
make dev
  1. Open your browser and navigate to http://localhost:5173

šŸ”§ Available Commands

Using npm:

npm run dev          # Start development server
npm run build        # Build for production
npm run preview      # Preview production build
npm run lint         # Run ESLint
npm run format       # Format code with Prettier
npm run check        # Run type checking

Using Make:

make help           # Show all available commands
make dev            # Start development server
make build          # Build for production
make lint           # Run ESLint
make format         # Format code with Prettier
make test           # Run all checks
make deploy         # Build for deployment

šŸš€ Deployment

The application automatically deploys to GitHub Pages when you push to the main branch.

Manual Deployment:

  1. Build the application:
npm run build
# or
make build
  1. The build output will be in the build/ directory

  2. Push to the main branch to trigger automatic deployment

GitHub Pages Setup:

  1. Go to your repository settings
  2. Navigate to Pages section
  3. Set source to "GitHub Actions"
  4. The site will be available at https://[your-username].github.io/programming-personality/

šŸ“‚ Project Structure

programming-personality/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ lib/
│   │   ā”œā”€ā”€ components/       # Svelte components
│   │   │   ā”œā”€ā”€ Question.svelte
│   │   │   └── Results.svelte
│   │   ā”œā”€ā”€ data/             # Quiz data
│   │   │   ā”œā”€ā”€ questions.ts
│   │   │   └── languages.ts
│   │   ā”œā”€ā”€ stores/           # State management
│   │   │   └── quiz.ts
│   │   └── types/            # TypeScript types
│   │       └── quiz.ts
│   └── routes/               # SvelteKit routes
│       ā”œā”€ā”€ +layout.ts
│       └── +page.svelte
ā”œā”€ā”€ static/                   # Static assets
ā”œā”€ā”€ .github/
│   └── workflows/
│       └── deploy.yml        # GitHub Actions workflow
ā”œā”€ā”€ Makefile                  # Build commands
ā”œā”€ā”€ package.json
ā”œā”€ā”€ svelte.config.js          # SvelteKit configuration
ā”œā”€ā”€ tsconfig.json             # TypeScript configuration
└── README.md

šŸŽ® How It Works

  1. MBTI Assessment: Answer personality questions to determine your MBTI type (INTJ, ENFP, etc.)
  2. Adaptive Questions: Get customized language preference questions based on your personality
  3. Smart Matching: Algorithm matches you with languages that align with your MBTI profile
  4. Share Results: Generate a unique shareable link to show off your programming language match
  5. Social Sharing: One-click sharing to Twitter, LinkedIn, WhatsApp, or Reddit with rich previews

šŸ¤ Contributing

Contributions are welcome! Feel free to:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

šŸ“ License

This project is open source and available under the MIT License.

šŸ™ Acknowledgments

šŸ“® Contact

For questions or feedback, please open an issue on GitHub.


Made with ā¤ļø using SvelteKit and TypeScript

Top categories

Loading Svelte Themes