Skip to content

Feat: All users Page#767

Merged
ismaeldosil merged 9 commits intostagingfrom
develop
Jan 22, 2026
Merged

Feat: All users Page#767
ismaeldosil merged 9 commits intostagingfrom
develop

Conversation

@ismaeldosil
Copy link
Collaborator

@ismaeldosil ismaeldosil commented Jan 22, 2026

Core Feature

  • AllUsersPage.tsx / AllUsersTable.tsx - New admin page to view all users in the system with a sortable, filterable table
  • App.tsx / BurgerMenu.tsx - Added routing and navigation menu entry for the new "All Users" page

Firebase Integration

  • Firebase.tsx - New method fetchAllUsers() to retrieve all users from Firestore

Type Refactoring

  • Types.tsx - Extended User interface with optional fields (email, school, archived, lastLogin) for reuse across components
  • xlsxGenerator.ts - Added user export functionality using centralized Types.User

Local Development Setup

  • seed-full.js / seed-local.js / seed-local.sh - Scripts to populate local emulators with test data
  • .gitignore - Exclude internal project files
  • README.md - Documentation for local development setup

Testing

  • cypress/all-users.ts - E2E tests for the All Users feature

Dependencies

  • functions/package-lock.json - Updated Node engine (10→20)
  • yarn.lock - Dependency updates

…edirect

- Add seed scripts for Firebase emulators (seed-local.js, seed-full.js)
- Fix login redirect race condition by removing premature history.push
- Update .gitignore to exclude internal project files
- Update yarn.lock with dependencies

Closes CHALK-004, CHALK-005
- Add lastLogin field to User and UserDocument interfaces
- Update firebaseEmailSignIn to record lastLogin timestamp on login
- Add getAllUsers() method to fetch all users for admin dashboard
- Add generateUsersXlsx() for Excel export functionality

Closes CHALK-010, CHALK-011, CHALK-012, CHALK-013
- Create AllUsersTable.tsx with search, filters, sorting, pagination
- Implement columns: Name, Email, Role, School, Status, Last Login
- Add role and status dropdown filters
- Add column sorting with TableSortLabel
- Add pagination with TablePagination (5/10/25/50 rows)
- Add Excel export button using generateUsersXlsx
- Style with styled-components following existing patterns

Closes CHALK-020, CHALK-021, CHALK-022, CHALK-023, CHALK-024, CHALK-025
- Create AllUsersPage.tsx integrating AllUsersTable with Firebase
- Implement edit user dialog with name/email editing
- Implement archive/unarchive with confirmation dialog
- Add /AllUsers route in App.tsx for admin/leader roles
- Add "All Users" menu item in BurgerMenu navigation
- Export button already functional from AllUsersTable component

Closes CHALK-030, CHALK-031, CHALK-032, CHALK-033, CHALK-040, CHALK-041, CHALK-042
- Add Cypress E2E tests for AllUsers page
- Add School column to users table
- Update Last Login format to show date and time

Closes CHALK-050, CHALK-051
- Add seed test data section with command and credentials
- Document All Users Dashboard feature with full capabilities
- Include route information for the new admin feature

Closes CHALK-060
- Add email, school, archived as optional fields to Types.User
- Make programs optional in Types.User
- Update AllUsersTable, AllUsersPage, xlsxGenerator to use Types.User directly
- Consistent with project's pattern of centralizing types

Closes CHALK-005
- AllUsersPage.tsx / AllUsersTable.tsx - New admin page to view all users in the system with a sortable, 
- App.tsx / BurgerMenu.tsx - Added routing and navigation menu entry for the new "All Users" page
- Firebase.tsx - New method fetchAllUsers() to retrieve all users from Firestore
- Types.tsx - Extended User interface with optional fields (email, school, archived, lastLogin) for reuse 
- xlsxGenerator.ts - Added user export functionality using centralized Types.User
- seed-full.js / seed-local.js / seed-local.sh - Scripts to populate local emulators with test data
- .gitignore - Exclude internal project files
- README.md - Documentation for local development setup
- cypress/all-users.ts - E2E tests for the All Users feature
- functions/package-lock.json - Updated Node engine (10→20)
- yarn.lock - Dependency updates
@ismaeldosil ismaeldosil merged commit af5a25a into staging Jan 22, 2026
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