Expert assistant for the JLU College Management System - handles timetable management, attendance tracking, student/faculty operations, and Next.js 15 + Prisma development with comprehensive knowledge of system architecture and common pitfalls.
Expert assistant for developing and maintaining the comprehensive college management system built for Jagran Lakecity University (JLU) Design Department. This skill provides deep knowledge of the system's architecture, common pitfalls, and development patterns.
This skill helps you work with a sophisticated college management system featuring:
`University → Department → Program → Specialization → Batch → Student`
1. Install dependencies: `npm install`
2. Generate Prisma client: `npx prisma generate`
3. Run migrations: `npm run db:migrate`
4. Seed database: `npm run db:seed`
5. Start dev server: `npm run dev`
1. **Start Development**: `npm run dev` (runs on Turbopack)
2. **Schema Changes**:
- Edit `prisma/schema.prisma`
- Run `npx prisma generate` to update client
- Run `npm run db:migrate` for development
3. **Database Inspection**: `npx prisma studio`
4. **Linting**: `npm run lint`
5. **Production Build**: `npm run build` then `npm run start`
- Admin: [email protected]/admin123
- Faculty: [email protected]/password123
- Student: [email protected]/password123
**The main timetable Week view uses `TraditionalTimetableView`, NOT `CalendarWeekView`!**
Component routing in `src/components/ui/full-calendar.tsx`:
```typescript
{viewState.view === 'week' && (
<TraditionalTimetableView // ← THIS IS THE WEEK VIEW!
date={viewState.currentDate}
events={processedEvents}
/>
)}
```
**DO NOT** implement timetable features in `CalendarWeekView` - it's not used for the main week view!
```
auth/[...nextauth]/ - NextAuth endpoints
batches/ - Batch CRUD
faculty/ - Faculty management
students/ - Student operations
subjects/ - Subject management
timetable/ - Timetable operations
bulk-operations/ - Async bulk operations
conflicts/ - Conflict detection
analytics/ - Timetable analytics
settings/ - Configuration
user/preferences/ - User preferences
```
```
ui/ - Base Shadcn components
auth/ - Authentication
batches/ - Batch management
faculty/ - Faculty interface
students/ - Student management
subjects/ - Subject operations
timetable/ - Timetable interface
settings/ - Configuration
providers/ - React context providers
```
1. **Server Components**: Use for data fetching and initial loads
2. **Client Components**: Mark with "use client" for interactivity
3. **Error Handling**: Comprehensive try-catch with user-friendly messages
4. **Loading States**: Skeleton components and loading indicators
5. **Form Validation**: Zod schemas with React Hook Form
1. **Transactions**: Use for multi-table operations
2. **Soft Deletes**: Use status fields, not hard deletes
3. **Audit Trails**: Track created/updated timestamps and user actions
4. **Optimistic Updates**: Client-side updates with server reconciliation
Required `.env` variables:
```env
DATABASE_URL="file:./dev.db"
NEXTAUTH_SECRET="your-secure-random-string"
NEXTAUTH_URL="http://localhost:3000"
```
1. Check role-based permissions in `src/lib/utils/permissions.ts`
2. Create component in appropriate `src/components/[module]/` directory
3. Add API route in `src/app/api/[module]/`
4. Update types in `src/types/`
5. Use React Hook Form + Zod for forms
6. Implement loading states and error handling
1. **Always** verify you're editing `TraditionalTimetableView` for week view
2. Check `src/components/ui/full-calendar.tsx` for view routing
3. Use `fetchAttendanceStatus()` for attendance data
4. Implement conflict detection via `/api/timetable/conflicts`
5. Test auto-save functionality
1. Use bulk operations in `session-attendance-table.tsx`
2. Implement loading states (`isBulkMarking`)
3. Merge attendance data with `mergeAttendanceWithEvents()`
4. Add visual indicators (color-coded badges, heat maps)
5. Prevent concurrent operations
```typescript
// In TraditionalTimetableView.tsx
const [attendanceData, setAttendanceData] = useState<Map<string, AttendanceStatus>>(new Map())
useEffect(() => {
fetchAttendanceStatus(events).then(data => {
setAttendanceData(data)
})
}, [events])
const eventsWithAttendance = mergeAttendanceWithEvents(events, attendanceData)
```
```typescript
import { getServerSession } from 'next-auth'
import { authOptions } from '@/app/api/auth/[...nextauth]/route'
export async function POST(req: Request) {
const session = await getServerSession(authOptions)
if (!session || !canManageSystem(session.user.role)) {
return NextResponse.json({ error: 'Unauthorized' }, { status: 403 })
}
// ... implementation
}
```
1. **Always check component routing** before implementing timetable features
2. **Use proper role-based access control** on all protected routes
3. **Implement optimistic updates** for better UX
4. **Add loading states** for all async operations
5. **Validate on both client and server** using Zod schemas
6. **Test bulk operations thoroughly** to prevent data corruption
7. **Use transactions** for operations affecting multiple tables
8. **Follow the established patterns** in existing components
✅ Core authentication & dashboard
✅ Role-based navigation & permissions
✅ Student/faculty/batch management
✅ Advanced timetable system with conflict detection
✅ Comprehensive attendance tracking with bulk operations
✅ Universal search with natural language
✅ User preferences & customizable interfaces
✅ Attendance status indicators on timetable
🚧 Advanced reporting & analytics
🚧 Enhanced mobile optimization
🚧 Performance optimization & caching
🚧 Comprehensive attendance analytics
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/college-management-system-expert/raw