Skip to content

Stack References

Matthew Su edited this page May 26, 2023 · 9 revisions

This page is for compiling important resources, references, and information for Questable's tech stack! The list of technologies below is not exhaustive, and additional project dependencies can be found in the package.json in the repository.

A Senior SWE leading a Questable-related project should read this page carefully and familiarize themselves deeply with the different stack components. Any technical questions can be directed to matthewsu@college.harvard.edu.


Core Stack Components

Javascript/Typescript

Our stack language!

React

Our frontend JS framework!

Firebase

Cloud Firestore

Our database

Firebase Authentication

Our user authentication manager

Google Classroom API

MUI

Our frontend component library

  • MUI Documentation
    • Make sure you're on v5 docs and not v4 docs!
    • Generally the condensed code snippets in the documentation are enough for understanding the components, but you can click <> to view detailed source code in Typescript and/or Javascript
  • MUI guide to creating reusable components and utilizing app-wide theming

Other important packages

React Query v3

Hooks for fetching and managing 3rd party data (Firebase, APIs)

Spritesheet animations

react-responsive-spritesheet

Questable's current spritesheet navigation/animation package. This is pretty old and so it does not work well with modern React state

ReactPixi

Future spritesheet naviation/animation package that will integrate well with React state and provide better animations

React Router

Client side page routing in React

React Quill

Rich text editor used in Questable

Fuse.js

Fuzzy search engine used in Questable


Future Stack Options

Next.js

An industry-grade "extension" of React with several optimizations for more performant webapps

Alternate component frameworks


Development Tools

Linting and formatting tools

  • ESLint: Our Javascript linter. Statically analyzes our code to detect issues in formatting/consistency
  • Prettier: Our automatic code formatter. Better formatting capabilities than ESLint but doesn't handle quality issues
  • EditorConfig: Helps VSCode conform to our formatting settings as we code.
  • Husky: Git hooks that auto-lint and format our code when we make a git commit

Misc. tools

  • Better Comments: Allows you to add different types of comments like // TODO (todo), // ! (error), // ? (question), etc.
  • Git Blame: Shows who made the last commit to the current line of code in VS Code's bottom status bar
  • VS Code Liveshare: Allows you to share your codespace with a teammate for working on the same files

Design References: References for Questable's UI/UX design and visual aesthetic

Development References: General tips and resources for working in Questable's development environment

Stack References: Important resources/references for Questable's tech stack

Technical Onboarding: Setup/installation guidance for developers working on Questable

Technical Documentation: Operational information for developing and maintaining Questable's different technical components. Important for teams working on Questable!

State of Questable: Information about the current state of Questable as of May 2023 and potential considerations for future development.

Clone this wiki locally