/school-strapi

Primary LanguageTypeScript

πŸŽ’ School Website Starter

Accessible and extremely user-friendly website template for schools, built on fun and modern stack. Forked from https://github.com/ElektronPlus/school-website.

Folder Structure

  • πŸ“ apps
    • πŸ“ backend: headless CMS (API) that uses Strapi.
    • πŸ“ frontend
      • πŸ“ queries: GraphQL queries. Just create a .graphql that you will want to use.
      • πŸ“ generated: Generated GraphQL queries with GraphQL Code Generator. Runs automatically while developing. You import types and queries from there (not from πŸ“ queries!)
      • πŸ“ stories: Storybook stories.
      • πŸ“ pages: Next.js pages.
      • πŸ“ public: Next.js static file serving.
      • πŸ“ styles: Global CSS Styles. It's better to use CSS modules (component.module.css in πŸ“ components
      • πŸ“ lib: Libraries wrappers (such as for Apollo Client) and configs.
      • πŸ“ components: React components and their styles. There's also a Next.js Layout

Technology

Next JS React TypeScript Storybook Chakra Vercel GraphQL MySQL Sentry

Front-end

Technology Description
Next.js The React Framework for Production. Next.js gives you the best developer experience with all the features you need for production: hybrid static & server rendering, TypeScript support, smart bundling, route pre-fetching, and more. No config needed.
React The most popular JavaScript library for building user interfaces.
TypeScript TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.
Storybook Tool for building UI components and pages in isolation. It streamlines UI development, testing, and documentation.

UI Libs

Library Description
Chakra UI Chakra UI is a simple, modular and accessible component library that gives you the building blocks you need to build your React applications. We use templates from Chakra Templates.
React Masonry CSS A Masonry component leveraging CSS and native React rendering, for fast, responsive masonry layouts.
React Accessible Headings Makes it easier to keep heading levels semantic and accessible (WCAG)

Fetching

Technology Description
GraphQL Main way to fetch data from the Strapi API. Gives us automatic TypeScript support thanks to GraphQL Code Generator. We use Apollo Client
REST API REST is rarely used, but sometimes it works out better with Strapi plugins, for example Navigation. External developers also might want to prefer use it in their projects. See documentation Β»

Back-end

Technology Description
Strapi Design APIs fast, manage content easily. Strapi is the leading open-source headless CMS. It’s 100% JavaScript, fully customizable and developer-first.
MySQL Database with PhpMyAdmin. Might be changed to PostgreSQL.
Meilisearch Meilisearch is a RESTful search API. It aims to be a ready-to-go solution for everyone who wants a fast and relevant search experience for their end-users βš‘οΈπŸ”Ž