LearnFlow is a platform designed to help users learn anything efficiently and effectively using the Leitner box algorithm. Whether you're studying for exams, learning a new language, or acquiring new skills, LearnFlow offers a user-friendly and interactive experience to support your learning journey.
- Leitner System Integration: LearnFlow utilizes the Leitner system to enhance memory retention and recall. This spaced repetition system helps users learn and retain information more effectively.
- Customizable Learning Paths: Users can tailor their learning paths based on their goals and progress, ensuring a personalized learning experience.
- Interactive Exercises: The platform features a variety of interactive exercises that adapt to the user's learning pace and style, making learning more engaging and effective.
- Daily Streaks and Progress Tracking: Users can maintain their learning momentum with daily streaks and track their progress over time. This feature motivates users to stay consistent in their learning journey.
- Admin Panel for Management: LearnFlow provides an admin panel for managing questions, courses, and users, making it easy for administrators to keep the platform updated and organized.
- And More...
- PHP >= 8.x (Recommended 8.3.23)
- Composer
- Node.js and NPM
- Git
- PHP ext-zip and ext-intl and ext-gd in php.ini
-
Clone the project repository:
If you have Cloned The repository previously, you can skip this step. otherwise, run commands below in the directory that conatins composer.json and README.md to clone the repository
git clone https://github.com/parsa-mostafaie/learnflow-filament.git cd learnflow-filament -
Install PHP dependencies:
composer install
-
Install NPM dependencies:
npm install
-
Create and configure the
.envfile:cp .env.example .env
Update the
.envfile with your database and other environment settings. -
Generate the application key:
php artisan key:generate
-
Link the storage directory:
php artisan storage:link
-
Migrate the database and seed it:
php artisan migrate:fresh --seed
-
Seed database from excel file: [optional]
php artisan import:courses ./words.xlsx
-
Prefetch Google fonts: [optional]
If you want to make sure fonts are ready to go before anyone visits your site, you can prefetch them with this artisan command.
php artisan google-fonts:fetch
-
Setup Multilingual Text-to-speech
LearnFlow uses the Strategy pattern to create easily extensible Services and Facades for TTS providers. One of the best providers is Piper, and by default, this project uses the
localprovider (seeconfig/tts.php), which is compatible with Piper.See this guide to install and run the Piper HTTP server on port
5000(you are free to choose any directory to set up Piper). If you don't want to customize theconfig/tts.phpconfig file, please ensure you have installed the following voices:fa_IR-amir-medium,en_US-lessac-medium,ar_JO-kareem-medium.Tip: In
.env, you can changeTTS_URL.Surprise: If you set
TTS_BROWSERtotruein.env, the project will use the browser-nativeSpeechSynthesis. However, it is set tofalseby default becauseSpeechSynthesisdoes not support some languages and may not be supported by the user's browser. -
Optimize For Better Performance:
php artisan optimize:clear php artisan optimize
Run the development server and vite in one command:
composer run dev
You can now access the application in your browser at http://localhost:8000.
You can login as super-admin By using [email protected] as both of email & password
- Add Site settings
- Rating to courses (and/or reaction)
- Saving courses (favorites)
- Permissions
- Ban users
- Socialite Logging in
- Site search improvements
- Category for courses
- Purchasable Courses
- And more...
If you need any help or have questions, you can reach out to us via email at [email protected].
Thank you for using LearnFlow! We hope you have a great learning experience.