
Shiftlog
A fast, efficient, and secure system to create, manage, and publish Release Notes for your apps/products.
π Blazingly Fast APIs written in Go
π Supports Release Notes in multiple formats (Plain Text, Markdown and HTML)
π Fully Secure Backend with JWT Auth Tokens

π οΈ Getting Started
Shiftlog is available as an API system that can be integrated into an existing server on a different port or deployed as a stand-alone microservice.
Prerequisites
Clone the Repository
Open your terminal or command prompt and navigate to your desired installation directory. Clone the repository:
git clone https://github.com/coderGtm/Shiftlog.git
Set Environment Variables
- Locate the
demo.env
file in the project directory.
- Open
demo.env
and fill in the required environment variables.
- Rename
demo.env
to .env
. This step now protects the file via .gitignore
.
Download Go Modules
Navigate to the project's root directory in your terminal and run:
go mod tidy
Run the Application
Start the application with the following command:
go run .
Access the Application
By default, the application (API) runs on port 8080. You can access it via Postman or curl with the base URL http://localhost:8080. A very bare-bones frontend is provided in the frontend directory which is routed to the base url scheme, i.e. you can access it via http://localhost:8080/signup scheme. It is highly reccomended and maybe necessary that you develop your custom frontend, while taking reference from what is provided. As a side note, it would be great if you can update the frontend in this repo with your improved version.

π Deployment
You can change the port on which the service runs by modifying the PORT
value in your environment config file (.env
).
π§ How It Works:
1. User Registration and Authentication:
Users register for an account, providing the necessary authentication credentials.
2. Creating and Managing Apps:
Once logged in, users can create and manage their applications, defining specific attributes and settings.
3. Versioning and Release Notes:
Within each application, users can create and manage multiple releases. For each release, they can attach release notes in their preferred format (text, MD, HTML).
4. Browsing and Exporting Release Notes:
Users can easily browse and view release notes associated with their applications. Additionally, they have the option to export notes in their chosen format.
β
Benefits
-
Efficient Documentation:
Shiftlog streamlines the process of creating, updating, and managing release notes, saving valuable time for developers and product teams.
-
The system accommodates different documentation styles with support for text, md, and HTML formats, catering to a wide range of user preferences.
-
Organized Versioning:
Through intuitive version management, users can easily track the evolution of their applications and associated release notes.
-
Enhanced Collaboration:
The user management feature ensures that only authorized individuals have access, promoting secure collaboration within teams.
π API Documentation
Please see documentation.md for a detailed API Documentation of Shiftlog
π Built With
- Gin - Gin is a web framework written in Go. It features a martini-like API with performance that is up to 40 times faster
- jwt-go - A go implementation of JSON Web Tokens.
- go-sqlite3 - A SQLite3 driver that conforms to the built-in database/SQL interface.
- bluemonday - bluemonday is an HTML sanitizer implemented in Go. It is fast and highly configurable.
- Go Cryptography - This repository holds supplementary Go cryptography libraries.
π± Contributing
Contributions are welcome. Please open an issue first and refer to that in your pull request.
π Support
You can show your support by becoming a stargazer...
π License
This project is licensed under the MIT License - see the LICENSE file for details