-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
75 additions
and
47 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,68 +1,96 @@ | ||
# Astro Starter Kit: Blog | ||
# GRID STAT | ||
|
||
```sh | ||
npm create astro@latest -- --template blog | ||
``` | ||
GRID STAT is a modern data visualization dashboard built with Astro and React, designed to display and analyze environmental and greenhouse gas (GHG) statistics. | ||
|
||
[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/blog) | ||
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/blog) | ||
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/blog/devcontainer.json) | ||
## π Features | ||
|
||
> π§βπ **Seasoned astronaut?** Delete this file. Have fun! | ||
- **Interactive Dashboard**: Dynamic visualization of environmental indicators and GHG data | ||
- **Multiple View Modes**: Switch between chart and table views for data analysis | ||
- **Advanced Filtering**: Search and filter indicators by topics and keywords | ||
- **Responsive Design**: Fully responsive layout with a clean, modern interface | ||
- **Real-time Data**: Integration with UNEP GRID API for up-to-date environmental statistics | ||
|
||
![blog](https://github.com/withastro/astro/assets/2244813/ff10799f-a816-4703-b967-c78997e8323d) | ||
## π οΈ Tech Stack | ||
|
||
Features: | ||
- [Astro](https://astro.build) - Web framework for content-driven websites | ||
- [React](https://reactjs.org) - UI component library | ||
- [Tailwind CSS](https://tailwindcss.com) - Utility-first CSS framework | ||
- [Recharts](https://recharts.org) - Composable charting library | ||
- [TypeScript](https://www.typescriptlang.org) - Static typing for JavaScript | ||
- [Lucide React](https://lucide.dev) - Beautiful & consistent icon system | ||
|
||
- β Minimal styling (make it your own!) | ||
- β 100/100 Lighthouse performance | ||
- β SEO-friendly with canonical URLs and OpenGraph data | ||
- β Sitemap support | ||
- β RSS Feed support | ||
- β Markdown & MDX support | ||
## π¦ Installation | ||
|
||
## π Project Structure | ||
1. Clone the repository: | ||
```bash | ||
git clone https://github.com/unep-grid/grid_stat | ||
cd grid_stat | ||
``` | ||
|
||
Inside of your Astro project, you'll see the following folders and files: | ||
2. Install dependencies: | ||
```bash | ||
npm install | ||
``` | ||
|
||
```text | ||
βββ public/ | ||
βββ src/ | ||
βΒ Β βββ components/ | ||
βΒ Β βββ content/ | ||
βΒ Β βββ layouts/ | ||
βΒ Β βββ pages/ | ||
βββ astro.config.mjs | ||
βββ README.md | ||
βββ package.json | ||
βββ tsconfig.json | ||
3. Start the development server: | ||
```bash | ||
npm run dev | ||
``` | ||
|
||
Astro looks for `.astro` or `.md` files in the `src/pages/` directory. Each page is exposed as a route based on its file name. | ||
4. Build for production: | ||
```bash | ||
npm run build | ||
``` | ||
|
||
There's nothing special about `src/components/`, but that's where we like to put any Astro/React/Vue/Svelte/Preact components. | ||
5. Preview the production build: | ||
```bash | ||
npm run preview | ||
``` | ||
|
||
The `src/content/` directory contains "collections" of related Markdown and MDX documents. Use `getCollection()` to retrieve posts from `src/content/blog/`, and type-check your frontmatter using an optional schema. See [Astro's Content Collections docs](https://docs.astro.build/en/guides/content-collections/) to learn more. | ||
## ποΈ Project Structure | ||
|
||
Any static assets, like images, can be placed in the `public/` directory. | ||
``` | ||
. | ||
βββ src/ | ||
β βββ components/ | ||
β β βββ Navbar.astro | ||
β β βββ dashboard/ # Main dashboard components | ||
β β βββ ui/ # Reusable UI components | ||
β βββ data/ # Mock data and indicators | ||
β βββ layouts/ # Astro layout templates | ||
β βββ pages/ # Route pages | ||
β βββ styles/ # Global styles | ||
βββ public/ # Static assets | ||
βββ astro.config.mjs # Astro configuration | ||
βββ tailwind.config.mjs # Tailwind CSS configuration | ||
βββ package.json | ||
``` | ||
|
||
## π§ Configuration | ||
|
||
## π§ Commands | ||
The project uses Astro's configuration file (`astro.config.mjs`) with the following integrations: | ||
- MDX support | ||
- Sitemap generation | ||
- React components | ||
- Tailwind CSS (with custom configuration) | ||
|
||
## π API Integration | ||
|
||
The dashboard integrates with the UNEP GRID API to fetch environmental indicators: | ||
```typescript | ||
const response = await fetch('https://api.unepgrid.ch/stats/v1/indicators?language=eq.en'); | ||
``` | ||
|
||
All commands are run from the root of the project, from a terminal: | ||
## π€ Contributing | ||
|
||
| Command | Action | | ||
| :------------------------ | :----------------------------------------------- | | ||
| `npm install` | Installs dependencies | | ||
| `npm run dev` | Starts local dev server at `localhost:4321` | | ||
| `npm run build` | Build your production site to `./dist/` | | ||
| `npm run preview` | Preview your build locally, before deploying | | ||
| `npm run astro ...` | Run CLI commands like `astro add`, `astro check` | | ||
| `npm run astro -- --help` | Get help using the Astro CLI | | ||
Contributions are welcome! Please feel free to submit a Pull Request. | ||
|
||
## π Want to learn more? | ||
## π License | ||
|
||
Check out [our documentation](https://docs.astro.build) or jump into our [Discord server](https://astro.build/chat). | ||
[Add your license information here] | ||
|
||
## Credit | ||
## π Acknowledgments | ||
|
||
This theme is based off of the lovely [Bear Blog](https://github.com/HermanMartinus/bearblog/). | ||
- UNEP GRID for providing the environmental data API | ||
- The Astro team for the excellent web framework | ||
- All contributors to this project |