真实世界评分应用后端TypeScript+Hapi+Prisma+PostgreSQL

真实场景的评分应用后端,用的是挺常见的那套:TypeScript + Hapi + Prisma + PostgreSQL。嗯,说白了,就是一个给在线课程打分、记录测试成绩、管注册的系统,架构清晰,数据建模也比较讲究。

项目最核心的亮点是:它不是一个“Hello World”级别的 Demo,而是一个能跑起来、能部署、能扩展的“真东西”。数据层用了Prisma来建模,像用户、课程、考试、成绩这类表,结构都设计得挺细。通过关系还能看出谁是老师谁是学生,权限那一块也有认真做。

Hapi.js负责 API 层,路由设计得比较直观,用的人少但挺好上手。要是你之前用过 Express,再来用 Hapi,快就能明白它的套路。TypeScript用得比较规范,类型推导做得好,调试起来舒服多了。

认证和授权这块也不是糊弄事儿,整了完整的用户体系。比如,学生和老师权限不一样,老师能发测试,学生能做测试,逻辑都在中间件里得挺清楚。

部署相关的内容也有提到,不管你打算本地跑还是上到服务器上,都有现成的方案。对了,还整合了一些外部 API,像成绩发布通知啊,学分同步啥的,扩展性也还不错。

如果你想搞一个“有来有回”的项目,不只是增删查改,这个例子还蛮适合你啃一啃。顺便了解下Prisma在实际业务里到底咋用,肯定不亏。

zip
real-world-grading-app-master.zip 预估大小:33个文件
folder
real-world-grading-app-master 文件夹
file
.gitignore 49B
file
tsconfig.json 229B
file
README.md 2KB
folder
.github 文件夹
folder
workflows 文件夹
file
grading-app.yaml 2KB
folder
prisma 文件夹
folder
migrations 文件夹
folder
20201214130854_init 文件夹
file
migration.sql 3KB
file
schema.prisma 2KB
folder
tests 文件夹
file
prisma.test.ts 406B
file
status.test.ts 523B
file
test-results.test.ts 4KB
file
tests.test.ts 5KB
file
courses.test.ts 6KB
file
test-helpers.ts 3KB
file
users-enrollment.test.ts 4KB
file
users.test.ts 6KB
file
docker-compose.yml 427B
file
package.json 1KB
folder
src 文件夹
file
server.ts 2KB
file
seed.ts 4KB
file
auth-helpers.ts 3KB
file
index.ts 135B
folder
plugins 文件夹
file
prisma.ts 950B
file
tests.ts 5KB
file
auth.ts 8KB
file
users.ts 8KB
file
test-results.ts 7KB
file
status.ts 410B
file
courses.ts 6KB
file
users-enrollment.ts 5KB
file
email.ts 1KB
file
seed-users.ts 1KB
file
.example.env 190B
file
jest.config.js 69B
file
package-lock.json 277KB
zip 文件大小:92.85KB