Skip to content

aniolekx/fiszki

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

22 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Fiszki - AI-Powered Flashcard Learning Platform

Symfony PHP MySQL Docker Bootstrap

An intelligent flashcard application that leverages AI to generate educational content and optimize learning through spaced repetition algorithms.

Features โ€ข Installation โ€ข Usage โ€ข Development โ€ข Testing โ€ข Contributing

๐Ÿ“š About

Fiszki is a modern web application designed to revolutionize the way people learn through flashcards. By combining traditional learning methods with AI-powered content generation and scientifically-proven spaced repetition algorithms, Fiszki makes memorization more efficient and engaging.

โœจ Features

Core Functionality

  • ๐ŸŽฏ User Management - Secure registration with email confirmation, authentication, and profile management
  • ๐Ÿ“ฆ Deck Organization - Create and manage collections of flashcards organized by topic
  • ๐Ÿƒ Flashcard CRUD - Full create, read, update, and delete operations for flashcards
  • ๐Ÿ“ง Email Notifications - Automated email confirmations and notifications

AI-Powered Features

  • ๐Ÿค– Smart Generation - Generate flashcards automatically from text (1000-10,000 characters)
  • ๐ŸŽจ Multiple Formats - Support for various flashcard types and content formats
  • ๐Ÿ’ณ Credit System - Token-based system for AI generation with usage tracking
  • ๐Ÿ“Š Usage Analytics - Track AI generation history and patterns

Learning Enhancement

  • ๐Ÿง  Spaced Repetition - Scientifically-proven algorithm for optimal memorization
  • ๐Ÿ“ˆ Progress Tracking - Monitor learning progress with detailed statistics
  • ๐ŸŽฎ Study Sessions - Interactive study mode with immediate feedback
  • ๐Ÿ“ Performance History - Review past performance and identify areas for improvement

Administration

  • ๐Ÿ‘จโ€๐Ÿ’ผ Admin Dashboard - Comprehensive admin panel for user and system management
  • โš™๏ธ System Settings - Configure AI models, API keys, and system parameters
  • ๐Ÿ“Š User Analytics - Monitor user activity and system usage

๐Ÿš€ Installation

Prerequisites

  • Docker >= 20.10
  • Docker Compose >= 2.0
  • Git

Quick Start

  1. Clone the repository
git clone https://github.com/yourusername/fiszki.git
cd fiszki
  1. Copy environment configuration
cp .env.example .env
# Edit .env with your configuration (database, mailer, OpenAI API key)
  1. Start Docker containers
docker-compose up -d
  1. Install dependencies
docker-compose exec php-fpm composer install
docker-compose exec php-fpm npm install
  1. Set up the database
docker-compose exec php-fpm php bin/console doctrine:migrations:migrate
docker-compose exec php-fpm php bin/console doctrine:fixtures:load --no-interaction  # Optional: Load sample data
  1. Build frontend assets
docker-compose exec php-fpm npm run build
  1. Access the application
http://localhost:8080

๐Ÿ’ป Development

Available Commands

Docker Commands

# Start containers
docker-compose up -d

# Stop containers
docker-compose down

# Access PHP container
docker-compose exec php-fpm bash

# View logs
docker-compose logs -f

Backend Commands

# Clear cache
php bin/console cache:clear

# Create new entity
php bin/console make:entity

# Create new migration
php bin/console make:migration

# Run migrations
php bin/console doctrine:migrations:migrate

# Load fixtures
php bin/console doctrine:fixtures:load --no-interaction

Frontend Commands

# Development build with watch
npm run watch

# Development build (one-time)
npm run dev

# Production build
npm run build

Code Quality

# Run PHPStan (static analysis)
vendor/bin/phpstan analyse

# Run PHP CS Fixer
vendor/bin/php-cs-fixer fix

# Run all tests
vendor/bin/phpunit
vendor/bin/behat

๐Ÿงช Testing

Unit Tests

vendor/bin/phpunit

BDD Tests

vendor/bin/behat

Static Analysis

vendor/bin/phpstan analyse --level=6

Test Coverage

vendor/bin/phpunit --coverage-html coverage/

๐Ÿ“ Project Structure

fiszki/
โ”œโ”€โ”€ assets/            # Frontend assets (JS, CSS)
โ”œโ”€โ”€ bin/              # Symfony console
โ”œโ”€โ”€ config/           # Application configuration
โ”œโ”€โ”€ docker/           # Docker configuration
โ”œโ”€โ”€ migrations/       # Database migrations
โ”œโ”€โ”€ public/           # Public directory (web root)
โ”œโ”€โ”€ src/              # Application source code
โ”‚   โ”œโ”€โ”€ Controller/   # HTTP controllers
โ”‚   โ”œโ”€โ”€ Entity/       # Doctrine entities
โ”‚   โ”œโ”€โ”€ Form/         # Form types
โ”‚   โ”œโ”€โ”€ Repository/   # Database repositories
โ”‚   โ”œโ”€โ”€ Service/      # Business logic services
โ”‚   โ””โ”€โ”€ Security/     # Security components
โ”œโ”€โ”€ templates/        # Twig templates
โ”œโ”€โ”€ tests/           # Test suites
โ”‚   โ”œโ”€โ”€ Behat/       # BDD tests
โ”‚   โ”œโ”€โ”€ Functional/  # Functional tests
โ”‚   โ””โ”€โ”€ Unit/        # Unit tests
โ”œโ”€โ”€ translations/    # Internationalization
โ””โ”€โ”€ var/            # Cache and logs

๐Ÿ”ง Configuration

Environment Variables

Key environment variables in .env:

# Application
APP_ENV=dev
APP_SECRET=your_secret_key

# Database
DATABASE_URL="mysql://root:password@mysql:3306/fiszki_db?serverVersion=8.0.39"

# Mailer
MAILER_DSN=smtp://user:pass@smtp.example.com:587

# OpenAI API
OPEN_AI_KEY=your_openai_api_key
AI_MODEL=gpt-3.5-turbo
AI_TEMPERATURE=0.7
AI_MAX_TOKENS=1000

๐Ÿค Contributing

We welcome contributions! Please follow these steps:

  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

Coding Standards

  • Follow Symfony coding standards
  • Use dependency injection via constructor
  • Write tests for new features
  • Keep controllers thin, move logic to services
  • Run PHPStan and fix any issues before committing

๐Ÿ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments

๐Ÿ“ž Support

For support, please open an issue in the GitHub repository or contact the maintainers.


Made with โค๏ธ by the Fiszki Team

About

Projekt Fiszki 10xDevs

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors