<prompt> Unda programu kamili ya JavaScriptTypeScript kwa kutumia React na Node.js inayounganisha kwenye hifadhidata ya MongoDB. Programu inapaswa kuruhusu watumiaji kuunda, kusoma, kusasisha na kufuta bidhaa kutoka kwa orodha ya ununuzi. Zaidi ya hayo, tekeleza uthibitishaji na uidhinishaji wa mtumiaji kwa kutumia tokeni za JWT.  <response>: Ili kuunda programu kamili ya JavaScriptTypeScript kwa kutumia React, Node.js, na MongoDB, fuata hatua hizi:1. Weka muundo wa mradiUnda saraka mpya ya mradi wako na uende kwayo kwenye terminal yako.mkdir orodha ya ununuzi-programucd ununuzi-orodha-programuNdani ya saraka hii, unda folda mbili: moja kwa upande wa mteja React na nyingine kwa upande wa seva Node.js.mteja wa mkdirseva ya mkdir2. Sanidi upande wa seva na Node.js na ExpressNenda kwenye folda ya seva na uanzishe mradi mpya wa Node.js.seva ya cdnpm init -ySakinisha utegemezi unaohitajika:npm sakinisha express mongoose cors dotenv jsonwebtoken bcryptjsnpm install --save-dev typescript ts-node typesnodi typesexpress typesmongoose typescors typesjsonwebtoken typesbcryptjsUnda faili ya tsconfig.json kwenye folda ya server na maudhui yafuatayo:json compilerOptions: target: es6, module: commonjs, outDir: .dist, kali: kweli, esModuleInterop: kweli , include: src.ts, exclude: node_modulesUnda folda ya src ndani ya folda ya seva na uongeze faili ya index.ts iliyo na maudhui yafuatayo: chapakuagiza Express kutoka kueleza;kuagiza cors kutoka cors;agiza dotenv kutoka dotenv;dotenv.config;const app express;app.usecors;app.useexpress.json;const PORT process.env.PORT 5000;app.listenPORT, console.logSeva inafanya kazi kwenye bandari PORT;;Ongeza maandishi yafuatayo kwenye faili ya package.json kwenye folda ya server:jsonscripts: start: ts-node srcindex.ts, build: tsc, serve: node distindex.js3. Sanidi MongoDB na MongooseUnda faili ya .env kwenye folda ya seva na uongeze kamba yako ya unganisho ya , , na database-name na stakabadhi zako halisi.Sasisha faili ya index.ts ili kuunganisha kwa MongoDB kwa kutumia Mongoose: chapakuagiza Express kutoka kueleza;kuagiza cors kutoka cors;agiza dotenv kutoka dotenv;kuagiza mongoose kutoka mongoose;dotenv.config;const app express;app.usecors;app.useexpress.json; Unganisha kwa MongoDBmongoose.connectprocess.env.MONGODB_URI kama mfuatano, useNewUrlParser: true, useUnifiedTopology: true ;mongoose.connection.mara mojafungua, console.logImeunganishwa kwa MongoDB;;const PORT process.env.PORT 5000;app.listenPORT, console.logSeva inafanya kazi kwenye bandari PORT;;4. Unda miundo, njia, na vidhibiti vya bidhaa za orodha ya ununuzi na uthibitishaji wa mtumiajiKatika folda ya src, unda folda tatu mpya: miundo, njia, na vidhibiti. Ndani ya kila folda hizi, unda faili za TypeScript kwa bidhaa za orodha ya ununuzi na uthibitishaji wa mtumiaji:- mifanoitemModel.ts- mifanouserModel.ts- njiakipengeeRoutes.ts- njiauserRoutes.ts- vidhibitivituController.ts- vidhibitimtumiajiController.tsTekeleza shughuli zinazohitajika za CRUD na uthibitishaji unaotegemea JWT katika faili hizi.5. Sanidi upande wa mteja na ReactNenda kwenye folda ya mteja na uunde programu mpya ya React kwa kutumia Unda React App:cd ..mtejanpx create-react-app . --kiolezo cha kuandikaSakinisha vitegemezi vinavyohitajika kwa usimamizi wa serikali na simu za API:npm install axios react-query6. Tekeleza UI ya orodha ya ununuzi na uiunganishe na sevaUnda vipengee vya kuonyesha, kuongeza, kusasisha na kufuta bidhaa kwenye orodha ya ununuzi. Tumia Axios na React Query kupiga simu za API kwa seva yako ya Node.js.7. Tekeleza uthibitishaji wa mtumiajiUnda vipengele vya kuingia na fomu za usajili. Unganisha vipengele hivi kwenye seva yako ya Node.js kwa kutumia Axios na uhifadhi tokeni za JWT katika hifadhi ya ndani au vidakuzi.8. Jaribu maombi yakoEndesha seva na programu za mteja na ujaribu shughuli zote za CRUD na vipengele vya uthibitishaji wa mtumiaji.Ili kuendesha seva:seva ya cdnpm kuanzaIli kuendesha mteja:mteja wa cdnpm kuanzaSasa una programu kamili ya JavaScriptTypeScript inayotumia React, Node.js, na MongoDB ambayo inaruhusu watumiaji kuunda, kusoma, kusasisha na kufuta bidhaa kutoka kwa orodha ya ununuzi huku wakitekeleza uthibitishaji na uidhinishaji wa mtumiaji kwa kutumia tokeni za JWT. 