/website

Code For Tulsa Website Update 2022

Primary LanguageTypeScript

Code For Tulsa Official Website

Code For Tulsa Logotype

site status Deploy to Staging version license
contributor count commit frequency last commit
follow on twitter find us on the Techlahoma slack

bootstrapped with NextJS made with react markdown support with unified.js typed with typescript pre-processed with postcss styled with tailwindcss linted with eslint


Code For Tulsa, an official brigade of Code For America, hosts a website and blog at codefortulsa.org. This is that website's working repository.

The Code for Tulsa website aims to be a beacon for engagement in civic tech volunteer opportunities within the greater Tulsa area.

The site is currently undergoing a major update. See below for more information

Links

Table of Contents

Background

This repo started as an effort to modernize the core site and create a dynamic working environment that facilitates additional contributions from current and future volunteers of all backgrounds.

In the early stages of this redesign project, the requirements were simple: create a web blog that facilitates content contributions from non-technical volunteers. Because of this, the project was initially bootstrapped as a static Gatsby site.

Soon after, discussions began about integrating other resources utilized by the organization, such as Twitter, Slack, Meetup, etc. It was agreed that a more flexible framework was desired to keep up with the dynamic demands of the organization and provide broader variety for volunteer engagement. The project was migrated to Next.Js in January 2022 and adapted for deployment on serverless platforms.

While the infrastructure now exists for more complex features, every effort should be made to implement them in as low resource/cost-effective a manner as possible by using static or incremental generation, external APIs, and client-side offloading wherever possible.

Installation

Pre-Requisites

Install the LTS version of Node:

# via nvm (recommended) https://github.com/nvm-sh/nvm
https://github.com/nvm-sh/nvm

# via pre-built installer
https://nodejs.dev/download/

Install Yarn:

npm install --global yarn

Local Development

Clone the repo and cd into the directory:

git clone https://github.com/codefortulsa/website.git ./code-for-tulsa-website
cd ./code-for-tulsa-website

With Docker

Install Docker

Run the app with docker compose (the first time you run this it will have to build images and install dependencies which could take a few minutes)

docker-compose up
  • add -d flag to run container(s) in the background.
  • if running in the background, you can start the logs up with docker-compose logs -f (the -f will keep the logs running, omit it for a one time print)

Without Docker

Install packages & start the dev server:

yarn install
yarn dev

Run e2e and component tests with Cypress locally:

  • Launch app:
yarn build
yarn start
OR
yarn dev
  • In separate process: run headless in terminal:
yarn test

run with cypress ui:

yarn cypress:ui

Component tests go in the cypress/component directory

End to End tests go in the cypress/e2e directory

Features

  • Landing Page (in progress)
  • Join Us - A Page on ways to get involved (in progress)
  • Web Blog (in progress)
  • Event Calendar with Meetup Integration (in progress)
  • Twitter integration (in progress)
  • Low-Code Utils for Organizers and Content Creators (in progress)

Known Issues / Limitations

the site is undergoing an overhaul. If you'd like to contribute content, design, or development, please reach out to our team

Site

  • Design work needs polish
  • Missing core features

Blog

  • Components are raw and unstyled
  • Posts can only include images from a web address (absolute URL)
  • Links within posts are not optimized for client side rendering
  • Code blocks lack syntax highlighting

SEO

  • Not optimized for generated pages
  • May be generic on some pages

Maintainers / Contributors

Support

Volunteer Contact for Website Development:

Volunteer Contact for all other areas:

Leadership

Inspiration

Utilities

Contributing

We welcome contributions from participants of all backgrounds! Writers, designers, and developers should read CONTRIBUTING.md to learn more. You can also reach out to us - we're friendly!

Code of Conduct

Code For Tulsa is a user group umbrellaed under the Techlahoma Foundation. All Code For Tulsa contributors, participants, and organizers must adhere to the Techlahoma Code of Conduct.