https://github.com/fabianferno/backend-dev-workshop
Backend Web Development with ExpressJS. Get Started with Rest APIs, mongoDB, TypeScript, Authentication, PostgreSQL, ORM & Middlewares.
https://github.com/fabianferno/backend-dev-workshop
auth0 backend boilerplate express jwt mongodb orm postgresql prisma rest-api scalable typescript workshop
Last synced: 16 days ago
JSON representation
Backend Web Development with ExpressJS. Get Started with Rest APIs, mongoDB, TypeScript, Authentication, PostgreSQL, ORM & Middlewares.
- Host: GitHub
- URL: https://github.com/fabianferno/backend-dev-workshop
- Owner: fabianferno
- License: other
- Created: 2022-01-28T10:02:51.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-02-09T04:44:37.000Z (about 3 years ago)
- Last Synced: 2025-03-25T18:41:04.789Z (about 1 month ago)
- Topics: auth0, backend, boilerplate, express, jwt, mongodb, orm, postgresql, prisma, rest-api, scalable, typescript, workshop
- Language: TypeScript
- Homepage:
- Size: 86.9 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README

----
### Get Started
- Rest APIs, MVC
- TypeScript, Clean Code
- Routing, Middlewares
- Authorization
- PostgreSQL, Prisma ORM-----
### Boilerplate Setup###### Use `npm` to install the project dependencies:
```bash
npm install
```###### Type ```cp .env.example .env``` in the terminal to create an ENV file and enter your credentials in the .env file.
```sh
# Configure your API port
API_PORT=5000# Auth0 Config
APP_BASE_URL=http://localhost:5000
AUTH0_ISSUER_BASE_URL=https://yourtenant.eu.auth0.com/# MongoDB Config
DATABASE_URL="DB_CONNECTION_STRING"
```###### Optional: Seed the database using prisma.
```sh
npm run seed
```###### Run the project in development mode. Server restarts on file changes
```sh
npm run dev
```###### Deploy to production.
```sh
npm run prod
```----
#### Watch the complete workshop playlist in YouTube incase you missed the livestream.
![]()
Please hit the like button on the videos. 🤞----
#### Workshop Task
- You get to build your own choice of a fully functional Rest API.
- These could be APIs like a Weather API, Backend for a blogging platform, Movie ticket booking API, etc.
- All the codebase of your submission shall be pushed to the Github classroon assignment repo that was sent earlier.
- Important: No participant shall submit a same application. i.e Your submission must be unique. Hence you are requested to use the `#coders-chat` channel at Pattarai Discord to call dibs on what you will be building.#### General Rules
- Your backend shall consist of more than two relations between the data models.
- Your API should do more than just doing single CRUD operations to a database. (Create, Read, Update, Delete). Try inserting, updating across multiple tables - experiment with Prisma.
- Try implementing nested routes. Use relevant methods and errorHandlers.
- Using jwt or any authorization is completely optional. But doing it will fetch you a higher score.
- Your API must be well documented via Postman and the collection should be exported and added to your repository. Refer [this.](https://learning.postman.com/docs/getting-started/importing-and-exporting-data/#exporting-postman-data)
- Optional: You could try deploying your API to https://www.railway.app#### Onwards
- You think you've built a great API and kick-ass prisma schema? Why not contribute to offical prisma.
- https://github.com/prisma/templates - this repo contains a few official example projects. Have a read at its README
- They are open for contributions to add more examples. Try opening pull requests to this repo once you've successfully completed your submission.
- Your workshop submission might actually end up in a official prisma repository.Feel Free to ping me: super.skywalker#4004 at `#coders-chat` in Pattarai's discord if you have any doubts regarding the task.
Happy Learning.
Please star this repo to show support ⭐️Like My Work?
----
### License
This project is licensed under the MIT license.
See the [LICENSE](./LICENSE.txt) file for more info.