Skip to content

Cprime50/FireGo

Repository files navigation

Fire-Go: Building Simple Modern Go Apps: KISS pattern with Go, Firebase, SQLite

Fire-Go

Overview

Fire-Go is an example application of how to create simple, high-performance applications that are both easy to develop and maintainable in the long run.

  • KISS (Keep it simple stupid)
  • Modular monolith architecture
  • REST
  • Go and Gin framework.
  • Sqlite3.
  • Firebase auth
  • RBAC with firebase
  • Gin-swagger documentation local

Articles

As I work on this project, I'll be sharing articles along the way.

  1. Building Simple Modern Go apps

Currently working on

This project is still a work in progress, I am working on the following features:

  • Writing unit Tests
  • Docker deployment
  • Github Actions
  • Deploy on Aws
  • OpenApi Documentation with huma
  • Kubernetes
  • Teraform
  • Client with nextjs

Getting Started

To get started with this project, follow these steps:

  1. Clone the git repo:
git clone https://github.com/Cprime50/Fire-Go
  1. Set Up Firebase Project: Create a new Firebase project or use an existing one in your firebase console

  2. Install the Go dependencys: cd into project folder and run

go mod tidy
  1. Obtain Your Firebase Private Key:

    • Navigate to the Firebase Console, under project settings, service accounts and download your project's private key.
    • For security, store this key in a .env file.
  2. Create .env file:Create a .env File:

    • In the root directory of the project, create a .env file.
    • Add the following details to the .env file:
ADMIN_EMAIL= youremail@mail.com

PORT=:3000

FIREBASE_KEY= your_private_key.json

Replace youremail@mail.com with your admin email, and path/to/your_private_key.json with the path to your Firebase private key.

  • Admin Email: This email will be set as the default admin when authenticated

Contributing

Contributions are welcome! If you have suggestions for improvements or encounter any issues, please feel free to open an issue or submit a pull request.

About

Golang open-source application utilizing KISS pattern in building simple web apps that are fast and easy to scale

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages