zzfima / php-laravel-demo

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Todo list project

End product: img_2.png Use cases:

  1. as a user, I want to create item for a todo list
  2. as a user, I want to mark items as complete and not to see them
  3. as a user, I want to see completed items
  4. as an admin, I want to see all items in MySQL database

work order:

  1. Install laravel environment: https://laravel.com/docs/4.2
  2. Install MySQL DB: https://dev.mysql.com/downloads/mysql/
    1. use the username 'root' and password '1234'
  3. Create laravel project: composer create-project laravel/laravel todoList
  4. Create local db
    1. mysql> CREATE DATABASE todoList;
    2. Use todoList db: use todoList
    3. Create
    4. Show all items: select * from list_items img_1.png
  5. Set db in .env file:
    1. DB_DATABASE=todoList
    2. DB_USERNAME=root
    3. DB_PASSWORD=1234
  6. Making model ListItem, Create migration
    1. Create model: php artisan make:model ListItem -m
    2. Make migration: php artisan migrate
    3. Check the migration folder: _database/migrations
      1. Delete all except of: /xxx_create_list_items_table.php_
      2. Add to migration file another columns:
        1. $table->sting('name');
        2. $table->integer('is_complete');
    4. Make migration again: php artisan migrate
      1. Make sure it is added to db
    5. Make factory for seeders: php artisan make:factory ListItem
    6. Refresh migration: php artisan migrate:fresh
    7. Refresh migration includes generate test info (seeds): php artisan migrate:fresh --seed
  7. Creating controller for free from logic file web.php: php artisan make:controller TodoListController
  8. Starting the server: php artisan serve
  9. Open http://127.0.0.1:8000/
  10. Show routes: php artisan route:list
  11. Changed files:
    1. Rename welcome.blade.php to mainPage.blade.php.
    2. resources/views/mainPage.blade.php
    3. Http/Controllers/TodoListController.php
    4. .env
    5. database/migrations/2023_09_09_122035_create_list_items_table.php
    6. routes/web.php

About

License:MIT License


Languages

Language:PHP 96.7%Language:Blade 2.9%Language:JavaScript 0.4%