<prompt> Unda programu kamili ya JavaScriptTypeScript inayotumia React kwa mandhari ya mbele na Node.jsExpress kwa mazingira ya nyuma. Programu inapaswa kujumuisha uthibitishaji wa mtumiaji kwa kutumia JWT, na kuruhusu watumiaji walioidhinishwa kutekeleza shughuli za CRUD kwenye seti ya rasilimali zilizohifadhiwa katika hifadhidata ya PostgreSQL. Zaidi ya hayo, tekeleza udhibiti wa ufikiaji unaotegemea dhima ili kuzuia vitendo fulani kwa watumiaji walio na majukumu mahususi.  <response>: Ili kuunda programu kamili ya JavaScriptTypeScript yenye React, Node.jsExpress, uthibitishaji wa JWT, na udhibiti wa ufikiaji unaotegemea dhima, fuata hatua hizi:1. Weka muundo wa mradiUnda saraka mpya ya mradi wako na uende kwayo kwenye terminal yako. Kisha, sanidi folda za mbele na za nyuma:mkdir programu yangucd programu yangunpx create-react-app frontend --template typescriptmkdir backendcd nyumanpm init -y2. Sakinisha utegemezi kwa backendSakinisha Express, TypeScript, na vifurushi vingine muhimu:npm sakinisha express cors dotenv pg typeorm bcrypt jsonwebtokennpm install -D typescript ts-node nodemon typesnode typesexpress typescors typesbcrypt typesjsonwebtoken3. Sanidi TypeScript na NodemonUnda faili ya tsconfig.json kwenye folda ya nyuma:json compilerOptions: target: es6, module: commonjs, outDir: .dist, kali: kweli, esModuleInterop: kweli, skipLibCheck: kweli, forceConsistentCasingInFileNames: kweli , include: srcSasisha sehemu ya scripts ya faili ya package.json:jsonscripts: start: nodemon --exec ts-node srcindex.ts4. Unda seva ya nyumaUnda folda ya src ndani ya folda ya nyuma na uongeze faili ya index.ts: chapakuagiza Express kutoka kueleza;kuagiza cors kutoka cors;const app express;app.usecors;app.useexpress.json; Njia zitaongezwa hapaconst PORT process.env.PORT 5000;app.listenPORT, console.logSeva inayoendesha kwenye bandari PORT;5. Sanidi hifadhidata na TypeORMUnda faili ya ormconfig.json kwenye folda ya nyuma:json type: postgres, host: localhost, bandari: 5432, username: jina_lako, password: nenosiri_lako, database: your_database_name, synchronize: kweli, ukataji miti: uongo, entities: srcentity.ts, migration: srcmigration.ts, subscribers: srcsubscriber.ts, cli: entitiesDir: srcentity, migrationsDir: srcmigration, subscribersDir: srcsubscriber 6. Unda huluki, hazina na huduma kwa rasilimali zakoKwa mfano, ikiwa una nyenzo inayoitwa Kipengee, unda darasa la huluki, hazina na huduma ili kushughulikia shughuli za CRUD.7. Tekeleza uthibitishaji wa mtumiaji na JWTUnda kipengele cha kukokotoa cha programu ya kati ili kuthibitisha tokeni za JWT na kulinda njia zinazohitaji uthibitishaji. Tumia bcrypt kuharakisha manenosiri kabla ya kuyahifadhi kwenye hifadhidata.8. Tekeleza udhibiti wa ufikiaji unaotegemea jukumuOngeza sehemu ya jukumu kwa huluki yako ya Mtumiaji, na uitumie kuzuia vitendo fulani kulingana na jukumu la mtumiaji k.m., msimamizi, mhariri, mtazamaji.9. Weka mazingira ya mbele ya ReactNenda kwenye folda ya mbele na usakinishe vifurushi muhimu:cd ..mbelenpm sakinisha axios react-router-dom typesreact-router-dom10. Unda vipengele na kurasa za programu yakoTumia React Router ili kusogeza kati ya kurasa tofauti, kama vile kuingia, kujisajili, na kutazamwa ili kudhibiti rasilimali zako.11. Unganisha sehemu ya mbele kwa nyumaTumia Axios kupiga simu za API kutoka kwa vipengele vyako vya React hadi kwenye seva yako ya Express.12. Tekeleza uthibitishaji wa mtumiaji katika sehemu ya mbeleHifadhi tokeni za JWT katika hifadhi ya ndani au vidakuzi, na uzijumuishe katika maombi ya API ambayo yanahitaji uthibitishaji.13. Tekeleza udhibiti wa ufikiaji unaotegemea jukumu katika sehemu ya mbeleZuia vipengele na vitendo fulani vya UI kulingana na jukumu la mtumiaji.Ni hayo tu! Sasa una programu kamili ya JavaScriptTypeScript iliyo na React, Node.jsExpress, uthibitishaji wa JWT, na udhibiti wa ufikiaji unaotegemea dhima. 