{"id":18498954,"url":"https://github.com/sjdonado/remix-dashboard","last_synced_at":"2025-08-24T14:39:50.273Z","repository":{"id":209096320,"uuid":"722494640","full_name":"sjdonado/remix-dashboard","owner":"sjdonado","description":"MVP of a Learning Management System built with remix + vite, drizzle + better-sqlite3, and tailwindcss + daisyui","archived":false,"fork":false,"pushed_at":"2024-04-05T05:24:23.000Z","size":1529,"stargazers_count":11,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-04T19:10:06.857Z","etag":null,"topics":["better-sqlite3","daisyui","drizzle-orm","playwright","remix","remix-validated-form","tailwindcss","vite","zod"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sjdonado.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-23T09:17:40.000Z","updated_at":"2025-02-21T09:49:48.000Z","dependencies_parsed_at":"2024-04-04T18:31:16.268Z","dependency_job_id":"daf6502c-b86b-4387-9173-4b678ac6fd5c","html_url":"https://github.com/sjdonado/remix-dashboard","commit_stats":null,"previous_names":["sjdonado/remix-dashboard"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjdonado%2Fremix-dashboard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjdonado%2Fremix-dashboard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjdonado%2Fremix-dashboard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sjdonado%2Fremix-dashboard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sjdonado","download_url":"https://codeload.github.com/sjdonado/remix-dashboard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247949941,"owners_count":21023414,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["better-sqlite3","daisyui","drizzle-orm","playwright","remix","remix-validated-form","tailwindcss","vite","zod"],"created_at":"2024-11-06T13:43:04.038Z","updated_at":"2025-04-09T00:31:27.863Z","avatar_url":"https://github.com/sjdonado.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Remix Dashboard\n\n\u003e MVP of a Learning Management System built with remix + vite, drizzle + better-sqlite3, and tailwindcss + daisyui.\n\n| Admin                                                                                                                                                             | Teacher                                                                                                                                                           | Student                                                                                                                                                           |\n| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| \u003cimg width=\"1840\" alt=\"Screenshot 2024-04-01 at 22 21 55\" src=\"https://github.com/sjdonado/remix-dashboard/assets/27580836/099a8a3e-8ec7-43e3-8789-737f61796aba\"\u003e | \u003cimg width=\"1840\" alt=\"Screenshot 2024-04-01 at 22 23 20\" src=\"https://github.com/sjdonado/remix-dashboard/assets/27580836/6c44363f-eaa5-4f49-87f8-c80924153967\"\u003e | \u003cimg width=\"1840\" alt=\"Screenshot 2024-04-01 at 22 24 04\" src=\"https://github.com/sjdonado/remix-dashboard/assets/27580836/b5513b02-fe8d-4594-8736-0c39d6f24793\"\u003e |\n\n## Design\n\n- primary keys with randomUUID + on delete cascade\n- Session storage (cookies)\n- Authentication + Authorization (RBAC) middleware\n- Schema validations with Zod\n- Responsive tables with filters + search box + pagination\n- Responsive sidebar\n- Confirmation dialogs\n- Logging with Pino\n- e2e testing with Playwright\n- Toast with sooner\n- Optimistic UI (update assignment status)\n- Dark mode\n\n## Roadmap\n\nv1.0\n\n- [x] Assignments have status (`OPEN`, `CLOSED`) and type (`HOMEWORK`, `QUIZ`, `PROJECT`)\n- [x] Users have roles (`ADMIN`, `TEACHER`, `STUDENT`)\n- [x] User login with multiple roles\n- [x] Admin role should CRUD users and assignments\n- [x] Teacher role should CRUD only their own assignments\n- [x] Student role should list all assignments\n- [x] Admin, Teacher, Student should be able to view and edit their profiles\n\nv1.1\n\n- [ ] Courses: Teachers and Admins can perform CRUD operations on courses and create assignments for each course.\n- [ ] Courses: Teachers and Admins can assign users to courses.\n- [ ] Courses: Students can only see assignments in their assigned courses.\n- [ ] Courses: Students can belong to multiple courses.\n\nv1.2\n\n- [ ] Assignment Submissions: Students can submit assignments.\n- [ ] Assignment Submissions: Students can filter assignments (submitted, open).\n- [ ] Assignment Submissions: Students can view the history of their submissions (by assignment).\n- [ ] Assignment Submissions: Teachers can grade submissions.\n- [ ] Assignment Submissions: Students can see their submission grades.\n\nv1.3\n\n- [ ] Statistics page: Display the total number of users, courses, assignments, and assignment submissions.\n\n## Self hosted\n\nDeploy with dokku\n\n```bash\ndokku apps:create remix-dashboard\n\ndokku storage:ensure-directory remix-dashboard-sqlite\ndokku storage:mount remix-dashboard /var/lib/dokku/data/storage/remix-dashboard-sqlite:/usr/src/app/sqlite/\n\ndokku config:set remix-dashboard DATABASE_URL=./sqlite/db.sqlite SECRET_KEY={YOUR_SECRET}\n\ndokku ports:add remix-dashboard http:80:3333\ndokku ports:add remix-dashboard https:443:3333\n\ndokku run remix-dashboard bun run db:push\ndokku run remix-dashboard bun run db:seed all\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsjdonado%2Fremix-dashboard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsjdonado%2Fremix-dashboard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsjdonado%2Fremix-dashboard/lists"}