Skip to content

Conversation

@WeishuZ
Copy link
Contributor

@WeishuZ WeishuZ commented Dec 10, 2025

Linear Ticket

Linear Ticket

Description

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Refactoring (non-breaking change)
  • Breaking change (fix or feature that would change existing functionality)

Changes

Testing

Checklist

  • My branch name matches the format: <ticket-id>/<brief-description-of-change>
  • My PR name matches the format: [<ticket-id>] <brief-description-of-change>
  • I have added doc-comments to all new functions (JSDoc for JS and Docstrings for Python)
  • I have reviewed all of my code

Screenshots/Video

Additional Notes

…ment

Adds the core Admin Dashboard with several key features to manage and analyze assignment data:

- Displays a list of assignments with name search capability.
- Shows histogram and statistical data for a selected assignment.
- Enables drilling down to a list of students by clicking on a grade bar.
- Implements functionality to generate and send the list of students via email to TAs.
@linear
Copy link

linear bot commented Dec 10, 2025

@WeishuZ WeishuZ requested a review from hheidy0463 December 10, 2025 00:28
…or better modularity

- Removed unused imports and components from studentProfile.jsx
- Introduced loading and error states for improved user experience
- Implemented a new StudentProfileContent component to encapsulate student data display logic
- Moved data processing functions to a new studentDataProcessor.js utility file
- Updated student data fetching and processing logic to handle admin selection
- Enhanced UI with loading indicators and error alerts
const [loadCount, setLoadCount] = useState(0);

const [gradingRows, setGradingRows] = useState([]);
const [isAdmin, setIsAdmin] = useState(false);
Comment on lines +3 to +25
import {
Alert,
Box,
Typography,
Card,
CardContent,
Grid,
Chip,
Table,
TableHead,
TableBody,
TableRow,
TableCell,
TableContainer,
Paper,
Accordion,
AccordionSummary,
AccordionDetails,
TextField,
Button,
IconButton,
Tooltip,
} from '@mui/material';
setProfileOpen(true);
};

const AlertCard = ({ title, count, icon, color, children }) => (
const visibleCount = sectionAssignments.filter(a => visibleAssignments[a.name]).length;
const total = sectionAssignments.length;
const allVisible = visibleCount === total && total > 0;
const someVisible = visibleCount > 0 && visibleCount < total;
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.

2 participants