Skip to content

React application to display individual publications using Typescript and GraphQL

License

Notifications You must be signed in to change notification settings

dictyBase/publication

Repository files navigation

publication

License
GitHub tag GitHub action
codecov Maintainability
Last commit
Funding

This is the Publication application to display publication information at dictyBase.

Cloud Native Development

All dictyBase development is now done with cloud native development in mind. It is expected that you have your own Kubernetes cluster running. Documentation for the cloud deployment process can be found at the dictyBase Developer Docs.

To deploy an application manually, you can leave a /deploy comment inside of a pull request or issue.

Local Development

In order for this application's login system to work locally, you will need to configure the list of providers.

  • Copy the provided sample clientConfig.sample.ts file to clientConfig.ts in the same folder.
  • Add any provider names and their corresponding client IDs.
  • All providers should have a matching counterpart in the oauthConfig.ts file. Enter all of the configuration parameters for every new provider in that file.
$ cp common/utils/oauthConfig.sample.ts common/utils/oauthConfig.ts

After setting up the login providers, run yarn, to install the dependencies and finally, yarn dev to run the server in watch mode.

Backend Requirements

This app requires the following services to be running:

Application Structure

.
common                          # Common features for entire app (that aren't components)
├── @types                      # Typescript type definitions
├── constants                   # Strings or namespaces used in the app
├── hooks                       # Hooks (ex. ApolloClient, Google, etc)
└── utils                       # Application utilities 
components                      # All React components
├── auth                        # Components related to auth
├── errors                      # Components that display errors
└── layout                      # Wrapper/Layout components
pages                           # Next.js router components
├── [id]                        # Pages that have a dynamic id param
└── load
public                          # Static files (images, fonts, etc.)
styles                          # Anything related to styling
__tests__                       # Jest tests
└── mocks                       # Mock data to replicate API calls