-
Notifications
You must be signed in to change notification settings - Fork 0
Stack References
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.
Our stack language!
Our frontend JS framework!
- Beta documentation is most helpful
- React documentation on composition
Our database
Our user authentication manager
- GCR API documentation
-
Guide to webapp authorization using Google Identity Services
- As of May 2023, our authorization flow is handled using google-oauth-gsi
- Guide to accessing Google API using OAuth 2.0
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
Hooks for fetching and managing 3rd party data (Firebase, APIs)
- React Query v3 documentation (We are using v3, not v4!)
-
react-query-firebasedocumentation-
react-queryv3 hooks for working with Firebase (Firebase auth, Firestore database)
-
Questable's current spritesheet navigation/animation package. This is pretty old and so it does not work well with modern React state
Future spritesheet naviation/animation package that will integrate well with React state and provide better animations
Client side page routing in React
- React Router documentation
Rich text editor used in Questable
-
react-quilldocumentation - Original Quill.js documentation
Fuzzy search engine used in Questable
- Fuse.js documentation
An industry-grade "extension" of React with several optimizations for more performant webapps
- Potentially Chakra UI or Mantine or even Tailwind UI with Tailwind CSS
- 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
-
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.