Code name: Gravity Boots (GB)
- Dotnet 5
- Node 8.16
- NPM 6
- React 16.13
- SQL Server 2017+
- TypeScript 3.8
- Docker (Unit Tests Only)
-
Install Microsoft SQL Server 2017
-
Create the following database
- Development:
GravityBootsApi
(See appsettings.json for details.)
- Development:
-
Configure user.
- Get credentials from the
appsettings.json
file listed above. - Right click on Security, then select New > Login
- Add login name
- Select SQL Server authentication
- Add password
- Deselect Enforce password policy and Enforce password expiration
- Select Server Roles from Select a Page
- Local development: Select all
- Select User Mapping from Select a Page
- For both the development and test databases:
- Local development: Select all role memberships
- For both the development and test databases:
- Get credentials from the
Install Dotnet Core 5.0.14 SDK & Runtime
Install NodeJS 8.16 / NPM 6
There is a central and-cli
used to manage builds, tests, deployments, etc... for the various aspects of the project.
Install the and-cli
tooling found at AndcultureCode.Cli
Below are a few basics to get you started, but there are many more commands and options for managing this and other projects found in the and-cli
.
and-cli dotnet --restore
- restore the dotnet solutionand-cli dotnet
- running backend projectand-cli dotnet-test --by-project
- running backend automated testsand-cli dotnet -- --cli test db migrate
- migrate the test database (Clean and Restore the project before running. Done with:and-cli dotnet -cRb
)and-cli migration --add MigrationName
- generates an EF Core database migration based on code-first changesand-cli migration --run MigrationName
- runs (or reverts to) a specified EF Core database migrationand-cli webpack
- running frontendand-cli webpack-test
- running frontend testsand-cli webpack --restore
- restore npm dependencies for frontendnpm run all-tests
- runs all of the test suites (backend, functional, frontend) and runs a storybook build (run from the root of the repo)cd frontend && npm run cypress:open
- run functional test suite interactivelycd frontend && npm run cypress:open:working
- run functional test suite interactively against workingcd frontend && npm run cypress:run
- run functional test suite headlesslycd frontend && npm run cypress:run:working
- run functional test suite headlesslycd frontend && npm run test:debug
- starts web socket connection for easy editor independent interactive debugging https://create-react-app.dev/docs/debugging-tests/
Restore the dotnet packages (first time only)
and-cli dotnet --restore
Restore the NPM node modules (first time only)
and-cli webpack --restore
Start the dotnet server
and-cli dotnet
Start the webpack server
and-cli webpack
Open your browser and navigate to:
https://localhost:5001
In order to run tests in a CI environment, the database is spun up in an Docker container using the latest mssql image from docker hub. You will need to install Docker, (Docker Desktop on Windows), and ensure the engine is running prior to running all unit tests. The database fixture will pull the image, if it doesn't exist, and start the container. Each collection gets a separate container. Once finished, the containers are automatically cleaned up.
Engineering Documentation covers the codebase (i.e. patterns, style, and best practices), software development, building, and deploying the project.
- Architecture
- Background Jobs: Hangfire
- Caching
- Code Conventions
- Entities
- Frontend Architecture
- Git Workflow
- Hangfire
- Shared Background Job Engine
- Storybook / KOP
- Swagger Documentation
External Resources cover requirements, high level architecture, design, and project management for the project.
- Here is our documentation style guide and template to get started.
- Documentation should be written with Markdown and should have the
.md
extension. Bitbucket has a Markdown Syntax Guide for reference. - For information on writing docs, go to Write the Docs.
Thanks goes to these wonderful people (emoji key):
Winton DeShong 💻 |
Brandon Scott 💻 |
Dylan Justice 💻 |
Stefanie Leitch 💻 👀 📖 |
This project follows the all-contributors specification. Contributions of any kind welcome!