https://github.com/sjdonado/remix-dashboard
MVP of a Learning Management System built with remix + vite, drizzle + better-sqlite3, and tailwindcss + daisyui
https://github.com/sjdonado/remix-dashboard
better-sqlite3 daisyui drizzle-orm playwright remix remix-validated-form tailwindcss vite zod
Last synced: 16 days ago
JSON representation
MVP of a Learning Management System built with remix + vite, drizzle + better-sqlite3, and tailwindcss + daisyui
- Host: GitHub
- URL: https://github.com/sjdonado/remix-dashboard
- Owner: sjdonado
- Created: 2023-11-23T09:17:40.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-04-05T05:24:23.000Z (about 1 year ago)
- Last Synced: 2025-04-04T19:10:06.857Z (21 days ago)
- Topics: better-sqlite3, daisyui, drizzle-orm, playwright, remix, remix-validated-form, tailwindcss, vite, zod
- Language: TypeScript
- Homepage:
- Size: 1.46 MB
- Stars: 11
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Remix Dashboard
> MVP of a Learning Management System built with remix + vite, drizzle + better-sqlite3, and tailwindcss + daisyui.
| Admin | Teacher | Student |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
||
|
|
## Design
- primary keys with randomUUID + on delete cascade
- Session storage (cookies)
- Authentication + Authorization (RBAC) middleware
- Schema validations with Zod
- Responsive tables with filters + search box + pagination
- Responsive sidebar
- Confirmation dialogs
- Logging with Pino
- e2e testing with Playwright
- Toast with sooner
- Optimistic UI (update assignment status)
- Dark mode## Roadmap
v1.0
- [x] Assignments have status (`OPEN`, `CLOSED`) and type (`HOMEWORK`, `QUIZ`, `PROJECT`)
- [x] Users have roles (`ADMIN`, `TEACHER`, `STUDENT`)
- [x] User login with multiple roles
- [x] Admin role should CRUD users and assignments
- [x] Teacher role should CRUD only their own assignments
- [x] Student role should list all assignments
- [x] Admin, Teacher, Student should be able to view and edit their profilesv1.1
- [ ] Courses: Teachers and Admins can perform CRUD operations on courses and create assignments for each course.
- [ ] Courses: Teachers and Admins can assign users to courses.
- [ ] Courses: Students can only see assignments in their assigned courses.
- [ ] Courses: Students can belong to multiple courses.v1.2
- [ ] Assignment Submissions: Students can submit assignments.
- [ ] Assignment Submissions: Students can filter assignments (submitted, open).
- [ ] Assignment Submissions: Students can view the history of their submissions (by assignment).
- [ ] Assignment Submissions: Teachers can grade submissions.
- [ ] Assignment Submissions: Students can see their submission grades.v1.3
- [ ] Statistics page: Display the total number of users, courses, assignments, and assignment submissions.
## Self hosted
Deploy with dokku
```bash
dokku apps:create remix-dashboarddokku storage:ensure-directory remix-dashboard-sqlite
dokku storage:mount remix-dashboard /var/lib/dokku/data/storage/remix-dashboard-sqlite:/usr/src/app/sqlite/dokku config:set remix-dashboard DATABASE_URL=./sqlite/db.sqlite SECRET_KEY={YOUR_SECRET}
dokku ports:add remix-dashboard http:80:3333
dokku ports:add remix-dashboard https:443:3333dokku run remix-dashboard bun run db:push
dokku run remix-dashboard bun run db:seed all
```