<prompt> Tengeneza programu kamili ya wavuti katika TypeScript ukitumia React kwa frontend na Node.jsExpress kwa backend, ambayo inaruhusu watumiaji kuunda, kushiriki, na kupiga kura kwenye uchaguzi, na data iliyohifadhiwa katika hifadhidata ya MongoDB na masasisho ya wakati halisi kutekelezwa kwa kutumia Socket. .IO.  <response>: Ili kuunda programu kamili ya wavuti kwa kutumia TypeScript, React, Node.jsExpress, MongoDB, na Socket.IO kwa kuunda, kushiriki, na kupiga kura kwenye kura, fuata hatua hizi:1. Weka muundo wa mradiUnda saraka mpya ya mradi wako na uanzishe na npm.programu ya kura ya mkdircd programu ya kuranpm init -y2. Sakinisha utegemeziSakinisha vitegemezi vinavyohitajika kwa maendeleo ya mbele na nyuma.npm kusakinisha typescript ts-node nodemon express socket.io mongodb react react-dom typesreact typesreact-dom typesnode typesexpress typessocket.io typesmongodb3. Sanidi TypeScriptUnda faili ya tsconfig.json kwenye mzizi wa folda ya mradi wako na uongeze usanidi ufuatao:json compilerOptions: target: es6, module: commonjs, jsx: react, outDir: .dist, kali: kweli, esModuleInterop: kweli, skipLibCheck: kweli, forceConsistentCasingInFileNames: kweli , include: src, exclude: node_modules4. Unda saraka za chanzoUnda saraka za src za mandhari ya mbele na ya nyuma.mkdir srccd srcseva ya mteja ya mkdircd..5. Sanidi seva ya ExpressNdani ya saraka ya srcserver, unda faili ya index.ts iliyo na maudhui yafuatayo: chapakuagiza Express kutoka kueleza;kuagiza http kutoka http;agiza Seva kutoka socket.io;agiza MongoClient kutoka mongodb;const app express;const server http.createServerprogramu;const io Seva mpya seva;async const mongoClient await MongoClient.connectmongodb:localhost:27017; const db mongoClient.dbpoll-app; io.onmuunganisho, tundu Shughulikia matukio na shughuli za hifadhidata hapa ; server.sikiliza3001, console.logSeva inasikiliza kwenye bandari 3001; ;;6. Sanidi mazingira ya mbele ya ReactNdani ya saraka ya srcmteja, unda faili ya index.tsx iliyo na maudhui yafuatayo: chapaimport React kutoka react;agiza ReactDOM kutoka react-dom;const App: React.FC kurudi Programu ya Kura div ;;ReactDOM.render, document.getElementByIdroot;7. Unda kiolezo rahisi cha HTMLUnda faili ya index.html kwenye mzizi wa folda ya mradi wako na maudhui yafuatayo:html Programu ya Kura ya Kura kichwa mwili html8. Sanidi NodemonUnda faili ya nodemon.json kwenye mzizi wa folda ya mradi wako na uongeze usanidi ufuatao:json watch: src, ext: ts, ignore: srcclient, exec: ts-node .srcserverindex.ts9. Sasisha hati za package.jsonOngeza maandishi yafuatayo kwenye faili yako ya package.json:jsonscripts: start: npm run build npm run serve, build: tsc, serve: nodemon, client: parcel srcclientindex.html,10. Tekeleza mantiki ya maombiKwa kuwa sasa mradi wako umeanzishwa, unaweza kuanza kutekeleza mantiki ya maombi ya kuunda, kushiriki, na kupiga kura kwenye kura. Hii ni pamoja na:- Kuunda njia RESTful API katika Express ili kushughulikia uundaji wa kura, kurejesha na kupiga kura.- Kuweka matukio ya Socket.IO ili kutangaza masasisho ya wakati halisi wakati kura mpya inapigwa au kura mpya inapoundwa.- Kubuni vipengele vya React kwa ajili ya kuonyesha na kuingiliana na kura.- Kuunganisha sehemu ya mbele kwa nyuma kwa kutumia Axios au API ya Kuchota.11. Endesha maombiIli kuendesha programu, fungua madirisha mawili ya terminal. Katika dirisha moja, endesha npm run serve ili kuanzisha seva. Katika dirisha lingine, endesha npm run client ili kuanzisha seva ya usanidi kwa upande wa mbele. Fungua kivinjari chako na uende kwa 