Categorygithub.com/avialog/backend
module
0.0.0-20241110175912-8074670930ca
Repository: https://github.com/avialog/backend.git
Documentation: pkg.go.dev

# README

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
ParameterTypeDescription
userRequestjsonRequired. 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
ParameterTypeDescription
contactRequestjsonRequired. JSON body of contact information to insert.

Update an existing contact [JWT REQUIRED]

  PUT /api/contacts/:id
ParameterTypeDescription
idintRequired. Id of contact to update.
contactRequestjsonRequired. JSON body of contact information to update.

Delete an existing contact [JWT REQUIRED]

   DELETE /api/contacts/:id
ParameterTypeDescription
idintRequired. 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

# Packages

No description provided by the author
Package docs Code generated by swaggo/swag.