Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/monamoxie/flash-card
A powerful command line application for managing and practicing flash cards. Written in PHP with CLI authentication capabilities, it is portable, fully containerised and easy to setup.
https://github.com/monamoxie/flash-card
cli command-line-interface docker flashcards laravel mysql nginx php phpunit
Last synced: 6 days ago
JSON representation
A powerful command line application for managing and practicing flash cards. Written in PHP with CLI authentication capabilities, it is portable, fully containerised and easy to setup.
- Host: GitHub
- URL: https://github.com/monamoxie/flash-card
- Owner: Monamoxie
- Created: 2024-08-06T18:21:53.000Z (3 months ago)
- Default Branch: master
- Last Pushed: 2024-10-27T15:07:38.000Z (9 days ago)
- Last Synced: 2024-10-27T17:18:19.575Z (9 days ago)
- Topics: cli, command-line-interface, docker, flashcards, laravel, mysql, nginx, php, phpunit
- Language: PHP
- Homepage:
- Size: 895 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# FLASH CARD
A powerful command line application for managing and practicing flash cards. Written in PHP with CLI authentication capabilities, it is portable, fully dockerised and easy to setup.
## Tech Stack
- PHP 8
- Docker
- Laravel
- Redis
- MySQL
- Nginx## Installation
- Clone the repo
- cd into cloned repo
- `cp .env.example .env`
- Fillup all necessary variables in `.env`
- Pull docker images and run containers `docker-compose up --build -d --wait`
- cd into php container `docker exec -it flashcard_php bash`
- Run `composer install`
- Run `php artisan key:generate`
- Run `php artisan migrate`
- Run CLI `php artisan flashcard:interactive`## BONUS ADDITIONS
### MYSQL
A MySQL DB instead of the the default SQLite installation provided by Laravel out of the box. Makes this powerful and production ready, if necessary.
### DEDICATED TEST DB
- For Feature/Unit testing, a dedicated MySQL container instead of the traditional in-memory or SQLite DB. It's good to use the same testing engine for both your production and test DB. It encourages consistency.
### PAGINATION
- Ability to paginate the results. This will be fully embraced by users with hundreds or thousands of flashcards, it gives the ability to navigate the program, either during listing, update, create or delete actions.
## TESTING
```
php artisan test
```## LICENSE
[MIT license](https://opensource.org/licenses/MIT)