{"id":13571832,"url":"https://github.com/NickMaev/react-core-boilerplate","last_synced_at":"2025-04-04T08:32:36.932Z","repository":{"id":36657801,"uuid":"152439812","full_name":"NickMaev/react-core-boilerplate","owner":"NickMaev","description":"Powerful ASP.NET Core 3 templates with React, true server-side rendering and Docker support","archived":false,"fork":false,"pushed_at":"2023-01-06T01:49:53.000Z","size":2419,"stargazers_count":221,"open_issues_count":43,"forks_count":62,"subscribers_count":26,"default_branch":"master","last_synced_at":"2024-08-02T14:10:35.896Z","etag":null,"topics":["aspnet","aspnet-core","aspnetcore","boilerplate","bootstrap","docker","formik","javascript","react","react-helmet","reactjs","redux","redux-toolkit","sass","server-side-rendering","ssr","template","typescript","webpack","webpack-plugin"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NickMaev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-10T14:45:18.000Z","updated_at":"2024-06-18T13:05:59.000Z","dependencies_parsed_at":"2023-01-17T04:00:38.386Z","dependency_job_id":null,"html_url":"https://github.com/NickMaev/react-core-boilerplate","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickMaev%2Freact-core-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickMaev%2Freact-core-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickMaev%2Freact-core-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NickMaev%2Freact-core-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NickMaev","download_url":"https://codeload.github.com/NickMaev/react-core-boilerplate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223118378,"owners_count":17090259,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aspnet","aspnet-core","aspnetcore","boilerplate","bootstrap","docker","formik","javascript","react","react-helmet","reactjs","redux","redux-toolkit","sass","server-side-rendering","ssr","template","typescript","webpack","webpack-plugin"],"created_at":"2024-08-01T14:01:06.968Z","updated_at":"2024-11-05T04:31:48.932Z","avatar_url":"https://github.com/NickMaev.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"﻿﻿[![Build Status](https://trixonsystems.visualstudio.com/React%20Core%20Boilerplate/_apis/build/status/NickMaev.react-core-boilerplate?branchName=master)](https://trixonsystems.visualstudio.com/React%20Core%20Boilerplate/_build/latest?definitionId=1\u0026branchName=master)\n\n# Description\n**React Core Boilerplate** is a starting point for building universal/isomorphic React web applications with ASP.NET Core 3 and server-side rendering. All works fine out of the box. It also is helpful for newbies.\nThe project contains a fake authorization system. So you can change it to Identity or the other.  \n[TypeScript](https://github.com/NickMaev/react-core-boilerplate/tree/master/RCB.TypeScript) and [JavaScript](https://github.com/NickMaev/react-core-boilerplate/tree/master/RCB.JavaScript) versions are available.⚡️  \n\n### Visual Studio Marketplace\n[![Visual Studio Marketplace Installs - Azure DevOps Extension](https://img.shields.io/visual-studio-marketplace/azure-devops/installs/services/NikolayMaev.ReactCoreBoilerplate?label=React%20Core%20Boilerplate%20%28TypeScript%29)](https://marketplace.visualstudio.com/items?itemName=NikolayMaev.ReactCoreBoilerplate)\n[![Visual Studio Marketplace Installs - Azure DevOps Extension](https://img.shields.io/visual-studio-marketplace/azure-devops/installs/services/NikolayMaev.ReactCoreBoilerplateJavaScript?label=React%20Core%20Boilerplate%20%28JavaScript%29)](https://marketplace.visualstudio.com/items?itemName=NikolayMaev.ReactCoreBoilerplateJavaScript)\n\n# Screenshots\n![](https://habrastorage.org/webt/es/pf/ul/espfulh8iybmj7csw1vjhecj6io.png)\n![](https://hsto.org/webt/se/1g/0n/se1g0nro74bo21mqimteda2w_ug.png)\n![](https://habrastorage.org/webt/b5/qh/hm/b5qhhmduvom1bg2widlrziiup-s.png)\n\n# Changes\n##### v. 2.0.3 (2020-07-03)\n* Added Docker support. 🐋\n* Added XSS attack prevention, thanks to [XuHaoJun](https://github.com/XuHaoJun).\n* Updated dependencies, removed unused namespaces.\n##### v. 2.0.0 (2020-05-08)\n* Migrated to **.NET Core 3.1**. 🎉\n* Migrated to `Bootstrap 4` using [react-bootstrap](https://react-bootstrap.github.io/).\n* Migrated to [Formik](https://github.com/jaredpalmer/formik).\n* `Redux` stores migrated to [Redux Toolkit](https://redux-toolkit.js.org/) for boosting development with Redux. Reduced code.\n* Logging and `Serilog` configuration improvements.\n* Added HTTPS support to `server-side rendering`.\n* Added editable status code in routes for SEO.\n* Updated some dependencies.\n* Stability fixes.\n* Removed unnecessary NPM dependencies.\n##### v. 1.7.1 (2019-06-02)\n* Updated `React`, `Redux`, `React-Router` and other NPM packages connected to them.\n* Updated critical NPM dependencies.\n* Removed unnecessary NPM dependencies.\n##### v. 1.7.0 (2019-05-05)\n* Repository restructuration.\n* Added **JavaScript** version of the React Core Boilerplate. 🎉\n* Stability fixes.\n* Updated critical dependencies.\n##### v. 1.6.3 (2019-03-19)\n* Removed `image-webpack-loader` due to instability.\n##### v. 1.6.2 (2019-03-15)\n* Installed stable `Terser` plugin.\n* Updated `React` and other packages for it (incl. types).\n* Updated `WebPack`.\n* Updated WebPack config for development mode.\n##### v. 1.6.0 (2019-03-13)\n* Updated `.NET Core` dependency to `v. 2.2`.\n* Updated critical NPM packages.\n* Updated `WebPack` dependencies.\n* Improved `WebPack` vendor and bundle configurations.\n* Improved `.csproj` file for building and publishing scenarios.\n* Fixed source map generation in development mode.\n* Fixed bundle compilation in production mode.\n* Other stability fixes.\n##### v. 1.5.4 (2019-02-04)\n* Added some minor features.\n* Bug fixes: `collapsing of the Bootstrap navigation bar`, `fixed controller and frontend's service in person update case`.\n* Updated dependencies.\n##### v. 1.5.3 (2018-12-04)\n* Added polyfills for supporting IE9, IE11: `@babel/polyfill`, `custom-event-polyfill`.\n* Updated dependencies.\n##### v. 1.5.2 (2018-12-01)\n* Added fulltext live search to example.\n* Added WebPack plugins: `case-sensitive-paths-webpack-plugin`, `react-dev-utils`\n* Added plugins with examples:\n`awesome-debounce-promise` to prevent doing frequent queries in live search, `formik` to create forms in React without tears.\n* Fixed some functional and text errors.\n##### v. 1.5.0(1) (2018-11-07)\n* Added `hosting.json` which contains hosting settings and will be used in the production build.\n* Added `bind-decorator` package and examples with it.\n* Speeded up of WebPack bundle building.\n* Updated domain-wait package. This update allows you to prevent calling for isomorphic fetch requests twice (in server prerender and after it - on client-side).\n* Updated redux-thunk package. \n* Added new React components to prevent a headache when you build web applications: `ModalComponent`, `Input`, `MultiSelect`, `Form`. These components are used in examples.\n##### v. 1.4.5 (2018-11-02)\n* Added new feature allows a web application to share browser's cookie with NodeServices. Now SSR generates HTML code for authenticated users and makes authenticated isomorphic requests. \n* Added method `sendFormData` to the `ServiceBase.ts` which allows you to upload files to the server.\n##### v. 1.3.5 (2018-10-26)\n* Updated NPM packages: `react`, `redux`, `react-router`. \n* Replaced due to deprecation `react-router-redux` by the new `connected-react-router`.\n* Fixed `Loader` component which had trouble in some cases.\n##### v. 1.3.2 (2018-10-25)\n* Removed unused NPM packages.\n* Added package-lock.json. \n* Fixed project.\n##### v. 1.3.0 (2018-10-22)\n* Updated React package. \n* Added the `AppComponent` component which allows you to do the \"force update\" of the \"stucked\" components (for ex. `Loader` component in `LoginPage`). \n* Added Serilog logger which log into files (`logs/` directory) and also into Azure Cloud Provider.\n##### v. 1.2.1 (2018-10-20)\n* Fixed `Loader` component which worked incorrect with SSR in some cases.\n##### v. 1.2.0 (2018-10-18)\n* Updated dependency of \"ASP.NET Core\" package due to vulnerability.\n* Added feature which allows you to pass JSON objects to URL query for GET and DELETE methods.\n##### v. 1.1.0 (2018-10-16)\n* Fixed `AppRoute` component. Solved issue with passing params to components from React Router. If you want to fix it manually, see the commit [here](https://github.com/NickMaev/react-core-boilerplate/commit/34bef1c42879e73985633275c8fb499415c60d8a).\n\n# Usage\n\n## Installation\n1. Install latest .NET Core **SDK** and **Runtime** by [link](https://dotnet.microsoft.com/download).\n2. Install of the latest stable [Node.js](https://nodejs.org/en/).\n3. At the first run you must close the project if it runs in Visual Studio or another IDE. \nOpen project's folder in console and run command `npm install`.\n4. Execute the following command for development in your project's directory. It will compile the main and vendor bundle.\n```bash \nnpm run build:dev\n```\n5. If you are using Visual Studio 20xx, instead of `IIS Express` select the `YourProjectName` or `ReactCoreBoilerplate`: \nclick on the down arrow near the `IIS Express` and choose Docker or other option.\n6. Build and run project. It will start in Windows Console.\n\n## Modify WebPack vendor config\nIf you modify the WebPack vendor config, you must manually recompile the vendor bundle.\nExecute the following command in your project's directory to do this:\n```bash\nnpm run build:dev\n```\n\n## Run with Docker\n\n### Visual Studio 20xx\nJust select the `Docker` option in the toolbar.\n\n### Build a container\nExecute the following command in your project's directory:\n```bash\ndocker build -t [my image name] . \n```\nwhere `[my image name]` is your Docker image name.\n\n### Run a production container on Windows with HTTPS support (for test)\n1. Trust the ASP.NET Core HTTPS development certificate on Windows and macOS:\n```bash\ndotnet dev-certs https -ep %USERPROFILE%\\.aspnet\\https\\aspnetapp.pfx -p [my password]\n```  \nwhere `[my password]` is your password.  \n2. Execute:\n```bash\ndotnet dev-certs https --trust\n```\n3. Build your container.  \n4. Execute:  \n```bash\ndocker run --rm -it -p 7000:7000 -p 7001:7001 -e ASPNETCORE_URLS=\"https://+;http://+\" -e ASPNETCORE_Kestrel__Certificates__Default__Password=\"[my password]\" -e ASPNETCORE_Kestrel__Certificates__Default__Path=/https/aspnetapp.pfx -v %USERPROFILE%\\.aspnet\\https:/https/ [my image name]\n```  \nwhere `[my password]` - your certificate password (from the 1st step), `[my image name]` - your Docker image name.\n\n# Elements\nThird-party libraries:\n* [TypeScript](https://www.typescriptlang.org/) - all frontend based on TypeScript.\n* [fork-ts-checker-webpack-plugin](https://github.com/Realytics/fork-ts-checker-webpack-plugin) - Webpack plugin that runs typescript type checker on a separate process.\n* [React](https://reactjs.org/) - main library which worked as isomorphic.\n* [React Router](https://github.com/ReactTraining/react-router) - router for React.\n* [react-bootstrap](https://react-bootstrap.github.io/) - Bootstrap 4 for React.\n* [React-Helmet](https://github.com/nfl/react-helmet) - isomorphic SEO helpers.\n* [Redux](https://redux.js.org/) - store.\n* [Redux Toolkit](https://redux-toolkit.js.org/) - library for boosting development with Redux.\n* [Formik](https://github.com/jaredpalmer/formik) - library for building forms for React.\n* [Connected React Router](https://github.com/supasate/connected-react-router) - Redux binding for React Router.\n* [SASS](https://sass-lang.com/) - CSS preprocessor.\n* [WebPack 4](https://webpack.js.org/) - bundler.\n* [Axios](https://github.com/axios/axios) - isomorphic fetch util.\n* [ts-nameof](https://github.com/dsherret/ts-nameof) - allows you to use type-safe names of inputs in the form.\n* [json-to-url](https://www.npmjs.com/package/json-to-url) - allows you to pass JSON objects to URL query for GET and DELETE methods.\n* [Serilog](https://serilog.net/) - allows you to log into files (`logs/` directory) and also into Azure Cloud Provider.\n\nOwn libraries / fixed forks:\n* [domain-wait](https://github.com/NickMaev/domain-wait) - domain-task replacement with async/await support and new features.\n* [NVal](https://github.com/NickMaev/NVal) - jQuery-validation-like Vanilla JS validator.\n* [NVal-Tippy](https://github.com/NickMaev/NVal-Tippy) - Vanilla JS validation with awesome tooltips.\n* [NSerializeJson](https://github.com/NickMaev/NSerializeJson) - flexible form to JSON serializer based on Vanilla JS.\n\n# Issues\n\n## Known issues\n\n* **ERROR in ./ClientApp/styles/loaders/xxx.scss (./node_modules/css-loader/dist/cjs.js![...]): Error: ENOENT: no such file or directory, scandir 'xxx\\node_modules\\node-sass\\vendor'**  \nExecute `npm i` and `npm rebuild node-sass` in your project's directory.\n\n* **WebPack Hot Module Replacement [HMR] doesn't work with IIS**  \nWill be fixed. Use Kestrel for development instead.\n\n* **HTTP Error 500**  \nProbably you don't have the latest version of Node.js.\n\n* **HTTP Error 502.5**  \nYou must install the latest \"ASP.NET Core SDK\" and \"Runtime and Hosting Bundle\" using this link: https://www.microsoft.com/net/download/dotnet-core/2.1\n\n* **HTTP error 500 when hosted in Azure**  \nSet the \"WEBSITE_NODE_DEFAULT_VERSION\" to 6.11.2 in the \"app settings\" in Azure.\n\n* **Errors when running in development mode after publishing**  \nExecute `npm run build:dev` command in the project's dir.\n\n## Other issues\n* If you will have any issue with the project starting, you can see errors in logs (\"/logs\" directory). Please, do this before the open an issue on GitHub. Don't forget to mention the version of the React Core Boilerplate (`JavaScript` or `TypeScript`)\n\n# License\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNickMaev%2Freact-core-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FNickMaev%2Freact-core-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FNickMaev%2Freact-core-boilerplate/lists"}