All Projects → 2color → Real World Grading App

2color / Real World Grading App

An example of a real-world REST API backend built with TypeScript, Hapi, Prisma, and PostgreSQL.

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Real World Grading App

Prisma
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite & MongoDB (Preview)
Stars: ✭ 18,168 (+17202.86%)
Mutual labels:  prisma, orm, postgresql
Hunt Entity
An object-relational mapping (ORM) framework for D language (Similar to JPA / Doctrine), support PostgreSQL and MySQL.
Stars: ✭ 51 (-51.43%)
Mutual labels:  orm, postgresql
Kotlin Ktor Exposed Postgresql Rest Api
Kotlin, Ktor, Exposed, HikariCP and Postgresql based REST Api
Stars: ✭ 51 (-51.43%)
Mutual labels:  rest-api, postgresql
Spring Kotlin Exposed
playground for spring-boot 2.*, kotlin , jetbrains-exposed, postgres, jsonb, flyway, docker
Stars: ✭ 106 (+0.95%)
Mutual labels:  orm, postgresql
Postguard
🐛 Statically validate Postgres SQL queries in JS / TS code and derive schemas.
Stars: ✭ 104 (-0.95%)
Mutual labels:  database-schema, postgresql
Aquameta
Web development platform built entirely in PostgreSQL
Stars: ✭ 987 (+840%)
Mutual labels:  rest-api, postgresql
Pqt
Postgres schema definition, sql/go, code generation package.
Stars: ✭ 65 (-38.1%)
Mutual labels:  orm, postgresql
Express Knex Objection
A simple API system on a pg database, using knex and objection to simplify connection and management
Stars: ✭ 20 (-80.95%)
Mutual labels:  database-schema, orm
Bank
🏦 Full Stack Web Application similar to financial software that is used in banking institutions | React.js and Node.js
Stars: ✭ 1,158 (+1002.86%)
Mutual labels:  rest-api, postgresql
Chloe
A lightweight and high-performance Object/Relational Mapping(ORM) library for .NET --C#
Stars: ✭ 1,248 (+1088.57%)
Mutual labels:  orm, postgresql
Evolutility Server Node
Model-driven REST or GraphQL backend for CRUD and more, written in Javascript, using Node.js, Express, and PostgreSQL.
Stars: ✭ 84 (-20%)
Mutual labels:  rest-api, orm
Zeeql3
The ZeeQL (EOF/CoreData/AR like) Database Toolkit for Swift
Stars: ✭ 29 (-72.38%)
Mutual labels:  orm, postgresql
Tbls
tbls is a CI-Friendly tool for document a database, written in Go.
Stars: ✭ 940 (+795.24%)
Mutual labels:  database-schema, postgresql
Pop
A Tasty Treat For All Your Database Needs
Stars: ✭ 1,045 (+895.24%)
Mutual labels:  orm, postgresql
Kotgres
SQL generator and result set mapper for Postgres and Kotlin
Stars: ✭ 21 (-80%)
Mutual labels:  orm, postgresql
Rest Hapi
🚀 A RESTful API generator for Node.js
Stars: ✭ 1,102 (+949.52%)
Mutual labels:  rest-api, hapi
Go Kallax
Kallax is a PostgreSQL typesafe ORM for the Go language.
Stars: ✭ 853 (+712.38%)
Mutual labels:  orm, postgresql
Treefrog Framework
TreeFrog Framework : High-speed C++ MVC Framework for Web Application
Stars: ✭ 885 (+742.86%)
Mutual labels:  orm, postgresql
Cakephp
CakePHP: The Rapid Development Framework for PHP - Official Repository
Stars: ✭ 8,453 (+7950.48%)
Mutual labels:  rest-api, orm
Entityworker.core
EntityWorker is an object-relation mapper(ORM) that enable .NET developers to work with relations data using objects. EntityWorker is an alternative to entityframwork. is more flexible and much faster than entity framework.
Stars: ✭ 91 (-13.33%)
Mutual labels:  orm, postgresql

Real-world class grading backend

A real-world class grading application built with Prisma.

The grading application is used to manage enrollment in online classes, tests (as in exams) for classes, and test results.

The goal if this application is to showcase a real-world scenario of an application using Prisma. the following aspects of Prisma

  • Data modeling
  • CRUD
  • Aggregations
  • API layer
  • Validation
  • Testing
  • Authentication
  • Authorization
  • Integration with other APIs
  • Deployment

Check out the associated tutorial to learn more about how the backend was built.

Data model

The development of this project is driven by the database schema (also known as the data model). The schema is first designed to represent the following concepts:

  • User: this can be a student or a teacher, or both. The role of the user is determined through their association with a course.
  • Course: represent a course that can have multiple students/teachers. Each user can be associated with multiple courses either as a student or as a teacher.
  • CourseEnrollment:
  • Test: Each course can have many tests
  • TestResult: Each Test can have many TestReusults that is associated with a student

These are defined in the Prisma schema. The database schema will be created by Prisma Migrate.

Tech Stack

  • Backend:
    • PostgreSQL
    • Node.js
    • Prisma
    • TypeScript
    • Jest
    • Hapi.js

How to use

Install npm dependencies:

npm install
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].