https://github.com/wnderbin/to-do-flow-api
Manage your todo lists quickly and efficiently right on the server
https://github.com/wnderbin/to-do-flow-api
api go golang rest-api web
Last synced: 9 months ago
JSON representation
Manage your todo lists quickly and efficiently right on the server
- Host: GitHub
- URL: https://github.com/wnderbin/to-do-flow-api
- Owner: wnderbin
- License: bsd-2-clause
- Created: 2025-04-09T09:40:22.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-18T13:46:00.000Z (about 1 year ago)
- Last Synced: 2025-04-18T21:44:14.238Z (about 1 year ago)
- Topics: api, go, golang, rest-api, web
- Language: Go
- Homepage:
- Size: 58.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# ToDoFlow API
Table of Contents
## About ToDoFlow
Manage your todo lists quickly and efficiently right on the server.

### Built with:





## Project status
Here is information about how the project will work on its different versions. \
Current version of the project: (+/-)
* Launch in a containers: +
* Launch workflows: +
* Run locally via makefile: +
* Dependencies (What you should have pre-installed before starting a project): Postgres & Redis
## Getting Started
Instructions on how to run a project locally
### API documentation
You can see the documentation in the directory 
### Dependencies
* **CLEAN ENV** - github.com/ilyakaznacheev/cleanenv
* **UUID** - github.com/google/uuid
* **GORM** - gorm.io/gorm
* **GIN** - github.com/gin-gonic/gin
* **MIGRATE/V4** - github.com/golang-migrate/migrate/v4
* **GO-REDIS** - github.com/redis/go-redis/v9
```
go mod download
```
### Installation and Launch
```
git clone https://github.com/wnderbin/To-Do-Flow-API # clone the repository
```
#### !!!! Before you run the project, I recommend making sure that the project settings are correct. You can view and change them in the config.yaml file in the config directory.
#### If you are running the application using Docker, I recommend making sure that the configuration file looks like this:
```
env: "prod"
postgres:
host: "postgres"
port: 5432
user: "wnd"
password: "123"
dbname: "wnd"
sslmode: "disable"
workflow_status: 0 # 1 - workflow (tests) status / 0 - launch status
redis:
address: "redis:6379"
password: ""
db: 0
workflow_status: 0 # 1 - workflow (tests) status / 0 - launch status
http_server:
address: "0.0.0.0:8080"
timeout: 4s
idle_timeout: 60s
```
#### And run the project:
```
docker compose up --build # run the project
docker compose down -v # stop the project
docker volume ls # view saved database records
docker volume rm pgdata # delete database entries
```
--------------------
#### If you are running the project locally:
```
env: "prod"
postgres:
host: "localhost"
port: 5432
user: "wnd"
password: "123"
dbname: "wnd"
sslmode: "disable"
workflow_status: 0 # 1 - workflow (tests) status / 0 - launch status
redis:
address: "localhost:6379"
password: ""
db: 0
workflow_status: 0 # 1 - workflow (tests) status / 0 - launch status
http_server:
address: "0.0.0.0:8080"
timeout: 4s
idle_timeout: 60s
```
#### !!! Before running the project, make sure that your PostgreSQL & Redis database is running with the following parameters. (If you run the application with docker-compose, you don't need to make sure of this, since docker will deploy and do everything itself.):
#### Postgres
* **wnd** - user
* **123** - password
* **wnd** - database
* **localhost** - address
* **5432** - port
#### Redis
* **localhost** - address
* **_** - password (empty)
* **db=0**
#### And run the project with the command:
```
cd To-Do-Flow-API
1. make go-run # launch
2. make go-compile # compile & launch
```
## Project structure
**.github** - CI/CD \
**api/docs** - documentation about ToDoFlow project \
**cmd** - main applications of the ToDoFlow project \
**config** - application configuration \
**internal** - internal code of the application and libraries \
**migrations** - database migrations \
**models** - database structure/models
## License
Before using the project, it is recommended to read the license
## Author:
* wnderbin