const handbookSchema = new mongoose.Schema({ title: String, content: String, });

function HandbookPage() { const [searchQuery, setSearchQuery] = useState(''); const [handbookContent, setHandbookContent] = useState({});

app.get('/api/handbook/search', async (req, res) => { try { const searchQuery = req.query.q; const handbookContent = await Handbook.find({ title: { $regex: searchQuery, $options: 'i' } }).exec(); res.json(handbookContent); } catch (error) { console.error(error); res.status(500).json({ error: 'Internal Server Error' }); } });

return ( <div> <h1>SPE Petroleum Engineering Handbook</h1> <form onSubmit={handleSearch}> <input type="search" value={searchQuery} onChange={(event) => setSearchQuery(event.target.value)} placeholder="Search" /> <button type="submit">Search</button> </form> <div> {handbookContent && handbookContent.map((chapter) => ( <div key={chapter.id}> <h2>{chapter.title}</h2> <p>{chapter.content}</p> </div> ))} </div> </div> ); }

app.listen(3000, () => { console.log('Server listening on port 3000'); });

const express = require('express'); const app = express(); const mongoose = require('mongoose');

const Handbook = mongoose.model('Handbook', handbookSchema);