Giter Club home page Giter Club logo

rotini's Introduction

Hey ๐Ÿ‘‹

๐Ÿง” My name is Marc and I'm a computer engineer working remotely from Ottawa, Canada.

๐Ÿ› ๏ธ I lead the Application Platform and Infrastructure team at Top Hat. Our group focuses on the core systems that the application relies on to serve customers and that our developments teams build on top of to release awesome features.

๐ŸŽฏ I focus on fostering engineering excellence however I can, making sure that tough discussions about quality are happening and upping developer and customer experience.

๐Ÿง  I dabble in open source, baking and fermented foods.

โ“ My current interests lie in hands-on technical leadership, managing technical debt, and growing houseplants and engineering talent.

๐Ÿฅž My fave stack has some Python and Javascript/Typescript in it, but I've been exploring (and loving) Go.

๐Ÿ’ฌ Want to chat? Send me an email or poke me on LinkedIn.

rotini's People

Contributors

mcataford avatar renovate[bot] avatar

Watchers

 avatar

rotini's Issues

The absence of loading states is awkward

Description

The frontend fetches data to validate that UI elements can be shown (i.e. authentication checks) and to display file listings (i.e. viewing files owned). There is not loading state associated with "data is loading", leading to blank screens and uncomfortable layout shifts and flickering.

Because of how @tanstack/react-query works, the isLoading / isPending state would be leveraged to display loading states that would hide half-baked UI.

Users should be able to log out intentionally via the UI

Description

At time of writing, a user can log in via /login, but there's no UI-driven flow to sign off. The JWT generated on sign-in will expire after 10 minutes, forcing a log-off, but that's not sufficient (especially since JWTs should be refreshable - out of scope here).

A user should be able to navigate to /logout to terminate their session and invalidate their credentials.

User / ownership concept

Before being ready for a first release, Rotini should have a User/Authorization/Ownership flow so that uploaded files are accessible only by their owner.

Migration validation

Right now, migration validation happens implicitly through the test database setup. It's probably a good idea to have a dedicate check for:

  • Migration history being linear;
  • Migrations being applicable from scratch.

Builds that should be hitting the dependency cache in CI report cache misses

Problem

Builds that should leverage the build dependency cache seem to miss instead [1], making builds much longer than they should be. Since the misses happen at all levels where we expect dependencies to be present, the pipeline is minutes longer than it should be.

Definition of done

  • CI steps that look into the dependency cache should hit once the pipeline "Setup" step ran.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Rate-Limited

These updates are currently rate-limited. Click on a checkbox below to force their creation now.

  • chore(deps): update dependency django to v4.2.13
  • chore(deps): update dependency typescript to v5.4.5
  • chore(deps): update dependency vite to v5.2.12
  • chore(deps): update testing-library monorepo (@testing-library/jest-dom, @testing-library/react)
  • fix(deps): update material-ui monorepo to v5.15.19 (@mui/icons-material, @mui/material)
  • chore(deps): update dependency @biomejs/biome to v1.7.3
  • chore(deps): update dependency @vitejs/plugin-legacy to v5.4.0
  • chore(deps): update dependency jsdom to v24.1.0
  • chore(deps): update dependency vitest to v1.6.0
  • chore(deps): update dependency watchfiles to v0.22.0
  • chore(deps): update react monorepo (@types/react, @types/react-dom, react, react-dom)
  • chore(deps): update yarn to v4.2.2
  • fix(deps): update dependency axios to v1.7.2
  • chore(deps): update testing-library monorepo (major) (@testing-library/dom, @testing-library/react)
  • ๐Ÿ” Create all rate-limited PRs at once ๐Ÿ”

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Ignored or Blocked

These are blocked by an existing closed PR and will not be recreated unless you click a checkbox below.

Detected dependencies

dockerfile
backend/Dockerfile
  • python 3.12-slim
github-actions
.github/workflows/backend-pipeline.yml
  • actions/checkout v4
  • actions/checkout v4
  • actions/checkout v4
.github/workflows/ci.yml
  • actions/checkout v4
.github/workflows/frontend-pipeline.yml
  • actions/checkout v4
  • actions/checkout v4
  • actions/checkout v4
  • actions/checkout v4
  • actions/checkout v4
  • actions/cache v4
  • actions/upload-artifact v4
  • actions/checkout v4
  • actions/download-artifact v4
  • actions/github-script v7
  • actions/checkout v4
  • actions/download-artifact v4
.github/workflows/setup-backend-environment/action.yml
  • actions/checkout v4
  • arduino/setup-task v1
  • actions/setup-python v5
  • actions/cache v4
.github/workflows/setup-frontend-environment/action.yml
  • actions/checkout v4
  • arduino/setup-task v1
  • actions/setup-node v4
  • actions/cache v4
npm
frontend/package.json
  • @emotion/react ^11.11.1
  • @emotion/styled ^11.11.0
  • @mui/icons-material ^5.14.1
  • @mui/material ^5.14.2
  • @tanstack/react-query ^5.0.0
  • axios ^1.4.0
  • react ^18.2.0
  • react-dom ^18.2.0
  • @biomejs/biome ^1.4.1
  • @testing-library/dom ^9.3.3
  • @testing-library/jest-dom ^6.1.5
  • @testing-library/react ^14.1.2
  • @testing-library/user-event ^14.5.1
  • @types/mocha ^10.0.6
  • @types/node ^20.10.6
  • @types/react ^18.2.18
  • @types/react-dom ^18.2.7
  • @vitejs/plugin-basic-ssl ^1.0.2
  • @vitejs/plugin-legacy ^5.2.0
  • axios-mock-adapter ^1.21.5
  • jsdom ^24.0.0
  • terser ^5.26.0
  • typescript ^5.3.0
  • vite ^5.0.10
  • vitest ^1.1.0
  • yarn 4.1.1
pep621
backend/pyproject.toml
pip_requirements
backend/requirements.txt
  • anyio ==4.2.0
  • asgiref ==3.7.2
  • click ==8.1.7
  • django ==4.2.11
  • django-cors-headers ==4.3.1
  • djangorestframework ==3.14.0
  • h11 ==0.14.0
  • httptools ==0.6.1
  • idna ==3.6
  • psycopg2 ==2.9.9
  • pyjwt ==2.8.0
  • python-dotenv ==1.0.1
  • python-multipart ==0.0.7
  • pytz ==2023.4
  • pyyaml ==6.0.1
  • sniffio ==1.3.0
  • sqlparse ==0.4.4
  • uvicorn ==0.27.0
  • uvloop ==0.19.0
  • watchfiles ==0.21.0
  • websockets ==12.0
pyenv
backend/.python-version
  • python 3.12

  • Check this box to trigger a request for Renovate to run again on this repository

The application should be aware of whether the user is logged in or not

Description

Currently, the application uses a JWT stored in a cookie to authenticate queries against the backend. The application itself isn't looking at the token nor does it know its contents, so it's never actually aware of whether a user is logged in or not.

Awareness of "logged in" can be useful to gate certain features (i.e. navigation button that aren't available when not logged in) and to gracefully handle cases such as "user is already logged out, attempts to log out again".

Design

Having a hook, something like useCurrentUser, that would fetch data from the API about the logged in user to verify whether the user is logged in and who they are would be useful.

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.