Skip to content

avialog/backend

Repository files navigation

Avialog backend

Golang-powered backend application for mobile app that allows airplane pilots to record their flights and track career.

API Reference 🚧🚧🚧 IN PROGRESS 🚧🚧🚧

EC2 hostname: ec2-13-48-148-72.eu-north-1.compute.amazonaws.com

Get server health info

  GET /api/info

Get user profile [JWT REQUIRED]

  GET /api/profile

Update user profile [JWT REQUIRED]

  PUT /api/profile
Parameter Type Description
userRequest json Required. JSON body of user profile information to update.`

Get user contacts [JWT REQUIRED]

  GET /api/contacts

This endpoint retrieves a list of contacts for a user. The user ID is obtained from the context.

Insert a new contact [JWT REQUIRED]

  POST /api/contacts
Parameter Type Description
contactRequest json Required. JSON body of contact information to insert.

Update an existing contact [JWT REQUIRED]

  PUT /api/contacts/:id
Parameter Type Description
id int Required. Id of contact to update.
contactRequest json Required. JSON body of contact information to update.

Delete an existing contact [JWT REQUIRED]

   DELETE /api/contacts/:id
Parameter Type Description
id int Required. Id of contact to delete`

Technologies and libraries used:

  • 🐹 Go (Golang): Efficient and performant language for backend development.
  • 🍸 GIN Framework: Lightweight HTTP framework for building APIs.
  • 🗃️ PostgreSQL (Database): Utilized for persistent data storage.
  • 🔐 Firebase ApiKeyAuth: Token-based authentication for secure communication.
  • 📬 Postman: API development and testing tool.
  • 💻 IntelliJ GoLand: Integrated development environment for Go.
  • Ginkgo: Ginkgo is a testing framework for Go designed to help you write expressive tests.
  • Ω Gomega: Gomega is a matcher/assertion library. It is best paired with the Ginkgo BDD test framework, but can be adapted for use in other contexts too.
  • Swaggo package: Swag converts Go annotations to Swagger Documentation 2.0.
  • 🔑 Validator package: Validator is a validation library for Go that ensures data integrity and adherence to specified rules and constraints. It's used to validate user inputs, API requests, and other data structures within the application, ensuring they meet defined criteria before processing. This helps maintain data consistency, security, and overall application reliability.
  • 🖨Gomock: gomock is a mocking framework for the Go programming language. It integrates well with Go's built-in testing package, but can be used in other contexts too.
  • 🎫 golangci-lint: golangci-lint is a powerful static analysis tool for Go that helps identify and fix various code issues, ensuring code quality and adherence to best practices.

Firebase authorization simplified architecture:

auth

Database schema:

db

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages