Skip to content

Dashboard All Users Feature#775

Merged
ismaeldosil merged 20 commits intomasterfrom
develop
Jan 26, 2026
Merged

Dashboard All Users Feature#775
ismaeldosil merged 20 commits intomasterfrom
develop

Conversation

@ismaeldosil
Copy link
Collaborator

No description provided.

…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
The yarn.lock file had formatting inconsistencies that caused
Yarn 1.22 to fail with "Invalid value type" error during CI.

Restored yarn.lock from previous working staging version.

Closes CHALK-007
The yarn.lock file had formatting inconsistencies that caused
Yarn 1.22 to fail with "Invalid value type" error during CI.

Restored yarn.lock from previous working staging version.

Closes CHALK-007
- Add record counter showing "Showing X-Y of Z records" (CHALK-070)
- Add edit icon button in Actions column (CHALK-071)
- Add archive toggle switch with confirmation dialog (CHALK-072)
- Change export from Excel to CSV format (CHALK-073)

Closes CHALK-070, CHALK-071, CHALK-072, CHALK-073
AllUsers page UI improvements 
Record counter: Shows "Showing X-Y of Z records" in pagination
Edit icon: Pencil icon in Actions column to edit users
Archive toggle: Switch to activate/archive users with a confirmation dialog
CSV export: Changed from Excel (.xlsx) to CSV format
- Remove All Users link from BurgerMenu navigation
- Add All Users tab in UsersPage (visible only for admin role)
- Add /LeadersAllUsers route restricted to admin
- Update /AllUsers route to admin only

Closes CHALK-082
Closes CHALK-083
- Change School column to display Program name with data lookup
- Move archive toggle next to status field
- Update AllUsersTable styling and layout

Closes CHALK-080
Closes CHALK-081
Package-lock.json should be tracked to ensure consistent dependency installations

Closes CHALK-084
@ismaeldosil ismaeldosil merged commit 5a9bd86 into master Jan 26, 2026
2 checks 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