From 1e4531522e0e9cdaea10292860010da0c9a36415 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Prod=27homme?= Date: Mon, 2 Dec 2024 14:50:38 +0100 Subject: [PATCH] docs(client+cms): Improve the GitHub documentation --- README.md | 6 +++- client/README.md | 52 ++++++++++++++++++-------------- readme-architecture-diagram.png | Bin 0 -> 50557 bytes 3 files changed, 35 insertions(+), 23 deletions(-) create mode 100644 readme-architecture-diagram.png diff --git a/README.md b/README.md index cd7eb85..c855387 100644 --- a/README.md +++ b/README.md @@ -9,4 +9,8 @@ The platform is divided into 2 Node.js applications: - a Content Management System (CMS) located in the `/cms` folder - a client application located in the `/client` folder -More detailed documentation and instructions on how to run the applications are available in each of the folders. \ No newline at end of file +More detailed documentation and instructions on how to run the applications are available in each of the folders. + +## Architecture + +![The front-end application accesses a Mapbox account, AWS S3 bucket and the CMS. The CMS relies on a PostgreSQL database. Everything but the Mapbox account are hosted on AWS. The general public can access the front-end application while administrators can access the CMS. Mapbox stores and serves the basemap, vector and some raster layers. AWS S3 stores and serves the pre-computed static and animated raster tiles. PostgreSQL stores data such as the locations, dataset metadata and layer confifiguration. It does not store any geospatial data.](./readme-architecture-diagram.png) \ No newline at end of file diff --git a/client/README.md b/client/README.md index c403366..9c6851b 100644 --- a/client/README.md +++ b/client/README.md @@ -1,36 +1,44 @@ -This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app). +# South Sudan Pilot − Client application -## Getting Started +## Dependencies -First, run the development server: +- Node.js (see version in [.nvmrc](https://github.com/Vizzuality/south-sudan-pilot/blob/staging/client/.nvmrc)) +- [Yarn 4](https://yarnpkg.com/) (see version in [package.json](https://github.com/Vizzuality/south-sudan-pilot/blob/staging/client/package.json)) -```bash -npm run dev -# or -yarn dev -# or -pnpm dev -# or -bun dev +## Install & run + +### Native execution + +Be sure to set the required environment variables before running the application - see the Environment variables section below for more details. + +To install the dependencies, use: + +``` +yarn ``` -Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. +To run the application in development mode, use: -You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. +``` +yarn dev +``` -This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font. +To run the application in production mode, use: -## Learn More +``` +yarn build +yarn start +``` -To learn more about Next.js, take a look at the following resources: +### Docker -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. +This project includes 2 docker configuration files: -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome! +- [Dockerfile](https://github.com/Vizzuality/south-sudan-pilot/blob/staging/client/Dockerfile) aimed at development environments (may require tuning to work on different environments) +- [Dockerfile.prod](https://github.com/Vizzuality/south-sudan-pilot/blob/staging/client/Dockerfile.prod) aimed at production environments -## Deploy on Vercel +You can use either file to build a Docker image for this application. Be sure to set the required environment variables when running the container. -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. +## Environment variables -Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details. +See [src/env.ts](https://github.com/Vizzuality/south-sudan-pilot/blob/staging/client/src/env.ts). diff --git a/readme-architecture-diagram.png b/readme-architecture-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..082bd193a2cdda49fe2b61c8d3f2b2540f916a0b GIT binary patch literal 50557 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 #CpEOv{4!Ii(p5Q$ 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 literal 0 HcmV?d00001