An upskilling repo for building a full-stack TypeScript application with Bun and Postgres. Covers testing, logging, OOP, and modern software architecture. Includes generics, ORM, REST API patterns, and more.
This is the companion code for the Packt book “Full-Stack Web Development with TypeScript 5”, covering Bun, PostgreSQL, Svelte, TypeScript, and OpenAI integration.
https://github.com/abaj8494/full-stack-chatbot
Notes
curl -X POST http://localhost:3000/api/v1/auth/register/ -H "Content-Type: application/json" -d "{\"email\": \"user@mail.com\",\"password\": \"pass\", \"name\": \"Test\"}"
{"success":true}%
╭─ ~/Documents/code-private/full-stack-chatbot/chat_backend on main ⇡4 ····················· base
╰─❯ curl -X POST http://localhost:3000/api/v1/auth/login/ -H "ContentType: application/json" -d "{\"email\": \"user@mail.com\",\"password\": \"pass\"}"
{"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiVGVzdCIsImVtYWlsIjoidXNlckBtYWlsLmNvbSIsImlkIjoiMCIsImNyZWF0ZWRBdCI6MTc2OTA2MDcwODYyNCwidXBkYXRlZEF0IjoxNzY5MDYwNzA4NjI0fQ.MwZtbwzcNc9-BKlJeHt2QqIRJnNM6vAb7G9gXeIqXhI"}%
╭─ ~/Documents/code-private/full-stack-chatbot/chat_backend on main ⇡4 ····················· base
╰─❯ curl -X POST http://localhost:3000/api/v1/chat/ -H "Content-Type:application/json" -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiVGVzdCIsImVtYWlsIjoidXNlckBtYWlsLmNvbSIsImlkIjoiMCIsImNyZWF0ZWRBdCI6MTc2OTA2MDcwODYyNCwidXBkYXRlZEF0IjoxNzY5MDYwNzA4NjI0fQ.MwZtbwzcNc9-BKlJeHt2QqIRJnNM6vAb7G9gXeIqXhI" -d "{\"name\":\"Chat1\"}"
{"data":{"name":"Chat1","ownerId":"0","id":"0","createdAt":1769060768790,"updatedAt":1769060768790}}%
╭─ ~/Documents/code-private/full-stack-chatbot/chat_backend on main ⇡4 ····················· base
╰─❯ curl -X GET http://localhost:3000/api/v1/chat/ -H "Authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiVGVzdCIsImVtYWlsIjoidXNlckBtYWlsLmNvbSIsImlkIjoiMCIsImNyZWF0ZWRBdCI6MTc2OTA2MDcwODYyNCwidXBkYXRlZEF0IjoxNzY5MDYwNzA4NjI0fQ.MwZtbwzcNc9-BKlJeHt2QqIRJnNM6vAb7G9gXeIqXhI"
{"data":[{"name":"Chat1","ownerId":"0","id":"0","createdAt":1769060768790,"updatedAt":1769060768790}]}%