Skip to content

Ft enhancements 10 3#1

Merged
devdaviddr merged 8 commits intomainfrom
ft-enhancements-10-3
Mar 10, 2026
Merged

Ft enhancements 10 3#1
devdaviddr merged 8 commits intomainfrom
ft-enhancements-10-3

Conversation

@devdaviddr
Copy link
Copy Markdown
Owner

This pull request introduces a comprehensive, workspace-level ESLint setup for the monorepo, along with detailed documentation and project guidelines to standardize development practices across both client and server packages. It adds root-level configuration files, per-package environment and convention docs, and a CI workflow to ensure linting, testing, and building are consistently enforced. The most important changes are summarized below.

ESLint integration and configuration:

  • Added a root ESLint configuration (.eslintrc.cjs) with TypeScript, React, and import rules, including strict settings and targeted overrides for client, server, test, and config files. ([.eslintrc.cjsR1-R67](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-e1ce717e1179a0db14e90ec5374768a206651ca807db58352991eb7895ed7c9cR1-R67))
  • Introduced .eslintignore to exclude build artifacts, environment folders, and editor settings from linting. ([.eslintignoreR1-R7](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-a0fdacd2ade87c5238dde44378f574f7e123e669acdf8b740878b14b33b20275R1-R7))
  • Added ESLint and related plugins as root dev dependencies in package.json. ([package.jsonL10-R22](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519L10-R22))
  • Provided a detailed ESLint usage and rule documentation in docs/eslint.md. ([docs/eslint.mdR1-R121](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-84c0d389da7764c4d73523f254375c8005f92bfe4c4fec94aefa59763ca28f34R1-R121))
  • Updated the README.md with instructions for running linting at the workspace and package level. ([README.mdR187-R214](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5R187-R214))

Project structure, conventions, and documentation:

  • Added project-wide guidelines in .github/copilot-instructions.md, covering architecture, layering, build/test commands, code style, security, and integration points. ([.github/copilot-instructions.mdR1-R75](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-227c2c26cb2ee0ce0f46a320fc48fbcbdf21801a57f59161b1d0861e8aad55f5R1-R75))
  • Added detailed conventions for the client (.github/instructions/client.instructions.md), server (.github/instructions/server.instructions.md), and general TypeScript usage (.github/instructions/typescript.instructions.md). ([[1]](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-032723852ba89edd98ebfc35e025a65e7a4470a7c7d528d750224668498c39f3R1-R43), [[2]](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-7f1913d9bbe91869c679955bcb02bade202c1623f9afe20e6e3e3569a1a58dabR1-R41), [[3]](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-0edb472b50bb774292f433232ecbcb67c015660a75fdf6877c6cb12e3fa2d660R1-R27))
  • Added a commit message policy file to enforce Conventional Commits. ([.github/.copilot-commit-message-instructions.mdR1-R47](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-9ac972a9b28c6bb26cd03e70bc2689237633a35cf803220951e2cd08904a3054R1-R47))
  • Provided a sample environment file for the client package to standardize Firebase config. ([packages/client/.env.exampleR1-R8](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-72fb8cfef31ce867c7185e541752a08e1252d8db478af840a823f7f9249e8581R1-R8))

Continuous Integration:

  • Added a GitHub Actions workflow (.github/workflows/ci.yml) that runs linting, client and server tests, and builds on every push or pull request to main. ([.github/workflows/ci.ymlR1-R35](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-b803fcb7f17ed9235f1e5cb1fcd2f5d3b2838429d4368ae4c57ce4436577f03fR1-R35))

Editor and tooling support:

  • Added VSCode settings to integrate Copilot commit message instructions. ([.vscode/settings.jsonR1-R7](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-a5de3e5871ffcc383a2294845bd3df25d3eeff6c29ad46e3a396577c413bf357R1-R7))

Miscellaneous:

  • Minor test file comment improvement for clarity in App.test.tsx. ([packages/client/src/App.test.tsxR10](https://github.com/devdaviddr/fullstack-firebase-react-express-template/pull/1/files#diff-efc3fd95ae67e08a34f52d605761874aa42a8e96ee006f79e3bf89900ece46ccR10))

These changes collectively enforce consistent code quality, streamline onboarding, and provide clear guidance for all contributors across the monorepo.

- Implemented useUpdateProfile and useDeleteAccount hooks for managing user profile updates and account deletion.
- Enhanced userService with corresponding updateMe and deleteMe functions.
- Updated Dashboard component to utilize new hooks for profile management.

feat(server): add user profile update and deletion endpoints

- Introduced PUT and DELETE /api/me endpoints for updating user profiles and deleting accounts.
- Added validation for profile updates using zod.
- Enhanced userController to handle new endpoints and responses.
Added error handling to the login component for Google sign-in failures.
Refactored authentication hooks to remove token parameters and utilize
the user context directly. Updated tests to reflect these changes and
improve overall code structure.
Updated useMe, useUpdateProfile, and useDeleteAccount hooks to fetch
and utilize ID tokens for making authenticated requests. Added
support for token handling in userService methods and corresponding
tests to ensure proper header usage.
- Added delete account functionality in the Dashboard component.
- Integrated axios interceptor to handle 401 responses and sign out users.
- Enhanced AuthContext to register unauthenticated handler for session expiry.
- Updated loading indicators and accessibility attributes in ProtectedRoute.
- Improved error handling in Login component for better user feedback.
- Added tests for new features and updated existing tests for consistency.
- Added ESLint configuration to enforce TypeScript and React best practices.
- Introduced .eslintignore to exclude certain files and directories from linting.
- Updated package.json files to include ESLint as a dev dependency.
- Refactored various components to specify return types for better type safety.
- Enhanced API service functions with explicit return types.
- Updated tests to align with new type definitions and improve type safety.
@devdaviddr devdaviddr merged commit ec5f405 into main Mar 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant