Download Laravel App
composer create-project --prefer-dist laravel/laravel my-app
C:\xampp\htdocs\laravel10project>composer create-project laravel/laravel laravel10project
Connecting our Database
open .env file root directory.
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laraveldb
DB_USERNAME=root
DB_PASSWORD=
Database Migration
C:\xampp\htdocs\laravel\my-app>php artisan migrate
php artisan tinker
User::factory()->count(100)->create()
C:\xampp\htdocs\laravel\laravel10project>php artisan make:controller UserController
app\Http\Controllers\UserController.php
//app\Http\Controllers\UserController.php <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Models\User; class UserController extends Controller { public function index() { $users = User::all(); // Return Json Response return response()->json([ 'results' => $users ],200); } }routes/api.php
//routes/api.php <?php use Illuminate\Http\Request; use Illuminate\Support\Facades\Route; use App\Http\Controllers\UserController; Route::middleware('auth:sanctum')->get('/user', function (Request $request) { return $request->user(); }); Route::get('users', [UserController::class, 'index']);Run C:\xampp\htdocs\laravel\laravel10project>php artisan serve
Starting Laravel development server: http://127.0.0.1:8000/api/users
React JS
https://create-react-app.dev/
Create Project
C:\react-js>npx create-react-app myreactdev
Run
C:\react-js\myreactdev> npm start
C:\react-js\myreactdev\src\App.js
// import React, { useEffect, useState } from "react"; import "./App.css"; import SearchBar from "./Component/SearchBar"; //import allUsers from "./Data.json"; function App() { const [allUsers, setAllcountry] = useState([]); useEffect(() => { const getusers = async () => { const getres = await fetch("http://127.0.0.1:8000/api/users"); const setusers = await getres.json(); //console.log(setusers.results); setAllcountry(await setusers.results); }; getusers(); }, []); return ( <div className="App"> <SearchBar placeholder="Enter a Name..." data={allUsers} /> </div> ); } export default App;C:\react-js\myreactdev\src\Component\SearchBar.js
//C:\react-js\myreactdev\src\Component\SearchBar.js import React, { useState } from "react"; function SearchBar({ placeholder, data }) { const [filteredData, setFilteredData] = useState([]); const [wordEntered, setWordEntered] = useState(""); //console.log(data); const handleFilter = (event) => { const searchWord = event.target.value; setWordEntered(searchWord); const newFilter = data.filter((value) => { return value.name.toLowerCase().includes(searchWord.toLowerCase()); }); //console.log(searchWord); if (searchWord === "") { setFilteredData([]); } else { setFilteredData(newFilter); } }; return ( <div className="row d-flex justify-content-center "> <div className="col-md-6"> <div className="form"> <i className="fa fa-search"></i> <input type="text" placeholder={placeholder} className="form-control form-input" value={wordEntered} onChange={handleFilter} /> <span className="left-pan"><i className="fa fa-microphone"></i></span> </div> {filteredData.length !== 0 && ( <div className="dataResult"> {filteredData.slice(0, 15).map((value, index) => { return ( <div className="list border-bottom" key={index}> <div className="d-flex flex-column ml-3"> <span>{value.name}</span> </div> </div> ); })} </div> )} </div> </div> ); } export default SearchBar;C:\react-js\myreactdev\src\Data.json
//C:\react-js\myreactdev\src\Data.json [ { "id":1, "name":"Cairocoders Ednalan", "email":"cairocoders@gmail.com" }, { "id":2, "name":"clydey Ednalan", "email":"clydey@gmail.com" } ]react-js\myreactdev\public\index.html
//react-js\myreactdev\public\index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <link rel="icon" href="%PUBLIC_URL%/favicon.ico" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="theme-color" content="#000000" /> <meta name="description" content="Web site created using create-react-app" /> <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" /> <link rel="manifest" href="%PUBLIC_URL%/manifest.json" /> <title>React App</title> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css"/> <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"/> </head> <body> <noscript>You need to enable JavaScript to run this app.</noscript> <div id="root"></div> </body> </html>C:\react-js\myreactdev\src\App.css
//C:\react-js\myreactdev\src\App.css body{ background: #d1d5db; } .height{ height: 100vh; } .form{ margin-bottom:10px;margin-top:50px; position: relative; } .form .fa-search{ position: absolute; top:20px; left: 20px; color: #9ca3af; } .form span{ position: absolute; right: 17px; top: 13px; padding: 2px; border-left: 1px solid #d1d5db; } .left-pan{ padding-left: 7px; } .left-pan i{ padding-left: 10px; } .form-input{ height: 55px; text-indent: 33px; border-radius: 10px; } .form-input:focus{ box-shadow: none; border:none; } .list{ background-color:#ffffff; padding-top: 20px;padding-left:20px; padding-bottom: 10px; display: flex; align-items: center; } .border-bottom{ border-bottom: 2px solid #eee; }Run C:\react-j\myreactdev>npm start
http://localhost:3000/