Giter Club home page Giter Club logo

developer-portal's Introduction

Sitecore logo in red background Sitecore Developer Portal

Welcome to the Sitecore Developer Portal repository. This app was created to help you get started with Sitecore. The developer portal aims to bring all the Sitecore developer tools together in one place.

Technology used

The Sitecore developer portal is built with Next.js, Typescript, Chakra UI and Sitecore Blok, managed using Turborepo and is hosted on Vercel. The app uses static site generation to create all the pages at build time. It also utilizes Incremental Static Regeneration (ISR) to automatically update the app when changes to page content are made. Much of the page content is written in Markdown and is converted to HTML at build time. Images that are used are managed in Sitecore DAM and are published to a CDN.

Apps and Packages

  • apps
    • devportal: Developer Portal public site (Next.js based)
  • packages
    • ui: a React component library shared by both web and devportal applications
    • sc-changelog: Custom library to retrieve and parse changelog data
    • sc-changelog-tests: Run tests for the changelog
    • eslint-config-custom: eslint configurations (includes eslint-config-next and eslint-config-prettier)
    • tsconfig: tsconfig.jsons used throughout the monorepo

Each package/app is 100% TypeScript.

Utilities

This turborepo has some additional tools already setup:

Prerequisites

Monorepo

This repository is utilizing Turborepo to manage our monorepo setup. More information about Monorepos can be found in the Monorepo Handbook.

Node.js

The developer portal is built with Next.js, so you'll need to have Node.js installed to build the project. You can find the latest version of Node.js here. We recommend using the LTS version of Node.js.

Environment Variables

The Sitecore developer portal incorporates a number of third party services to bring in content. For full functionality, you must create a .env.local file in the root of the project and add in the below environment variables.

The following variables should exist within the .env.local file:

NEXT_PUBLIC_PUBLIC_URL=
NEXT_PUBLIC_YOUTUBE_API_KEY="An API key with YouTube Data API v3 access enabled"
NEXT_PUBLIC_TWITTER_BEARER_TOKEN="A bearer token from Twitter"
NEXT_PUBLIC_COOKIE_CONSENT_URL=
NEXT_PUBLIC_GTM_ID=
NEXT_PUBLIC_GTM_AUTH=
NEXT_PUBLIC_GTM_ENVIRONMENT=

Note: The site will still function without the above keys. The components that require these environment variables will fail gracefully and not display on the pages.

To enable search the following environment variables are required:

NEXT_PUBLIC_SEARCH_APP_API_KEY=
NEXT_PUBLIC_SEARCH_APP_CUSTOMER_KEY=
NEXT_PUBLIC_SEARCH_APP_ENV=
NEXT_PUBLIC_SEARCH_ENABLE_PREVIEW_SEARCH=

Note: The site will still function if the keys are missing or left blank. However these keys are still required to build the application

Getting Started

  1. Install Node.js, we recommend the LTS version.
  2. Clone the repository.
  3. Inside the repository run npm install to install all the dependencies.
  4. Create a .env.local file in the root of the project and add the following environment variables:
NEXT_PUBLIC_YOUTUBE_API_KEY=""
NEXT_PUBLIC_TWITTER_BEARER_TOKEN=""
NEXT_PUBLIC_COOKIE_CONSENT_URL=

NEXT_PUBLIC_GTM_ID=
NEXT_PUBLIC_GTM_AUTH=
NEXT_PUBLIC_GTM_ENVIRONMENT=

NEXT_PUBLIC_SEARCH_APP_API_KEY=
NEXT_PUBLIC_SEARCH_APP_CUSTOMER_KEY=
NEXT_PUBLIC_SEARCH_APP_ENV=
NEXT_PUBLIC_SEARCH_ENABLE_PREVIEW_SEARCH=

(For more information on populating environment variables see section Environment Variables above.)

  1. Run npm run dev to start the development server.
  2. Open the http://localhost:3000 in your browser to see the result!

Contributions

We are very grateful to the community for contributing bug fixes and improvements. We welcome all efforts to evolve and improve the Sitecore Developer Portal; read below to learn how to participate in those efforts.

Sitecore has adopted a Code of Conduct that we expect project participants to adhere to. Please read the full text so that you can understand what actions will and will not be tolerated.

Contributing Guide

If you want to make changes to the code, follow these steps:

  1. Fork the Developer Portal Repo GitHub repo.
  2. Clone the forked repo to your local machine.
  3. Create a feature branch from main for your changes. e.g. git checkout -b my-feature-branch
  4. npm install
  5. npm run dev (to preview your changes locally)
  6. Make your changes (if you changes include images please use the public/images folder to store the image(s))
    1. For more information on how to add content visit the contribute page
  7. Commit, push to your remote fork of the Developer Portal repo, then open a pull request (PR) to the main branch of the Developer Portal repo.

Your changes will be reviewed and merged if appropriate.

developer-portal's People

Contributors

markvanaalst avatar jst-cyr avatar robearlam avatar andershopkins avatar thomas-desmond avatar lovesitecore avatar dylanyoung-dev avatar kylelengling avatar guitarrich avatar dependabot[bot] avatar maxwmaher avatar pieterbrink123 avatar bhgeorge avatar ancaemcken avatar geann avatar sebastiantecsi avatar sc-venelinvelev avatar nickwesselman avatar fracasgit avatar inakiabete-reflektion avatar anastasiya29 avatar jawandarajbir avatar raytran-sitecore avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.