- Git
- Docker
- Go 1.20 and above
- Node 20
If you are not using Docker, you should also have:
- MongoDB
Clone the repository
# Clone Project
git clone https://github.com/VitaliiVinnychenko/neurocast-task.git neurocast-task
# Change Directory
cd neurocast-task
# Build & Create Docker Containers
docker-compose up -d
# Install dependencies
npm install
# Start application
npm start
# Copy Example Env file
cp ./env.example .env
# Change MongoDB/Redis URI and Database Name
# MONGO_URI=<mongo_uri>
# MONGO_DATABASE=<db_name>
# Download Modules
go mod download
# Build Project
go build -o go-starter .
# Run the Project
./go-starter
The application starts at port 8080:
POST /v1/notes
Create a new noteGET /v1/notes
Get paginated list of notesGET /v1/notes/:id
Get a one note detailsPUT /v1/notes/:id
Update a noteDELETE /v1/notes/:id
Delete a note
GET /swagger/*
Auto created swagger endpoint
You can also see: http://localhost:8080/swagger/index.html
If you want to add new routes and swagger docs, you should run
swag init
See: Gin Swagger
├── controllers # contains api functions and main business logic
├── docs # swagger files
├── logs
├── middlewares # request/response middlewares
│ └── validators # data/request validators
├── models
│ └── db # collection models
├── routes # router initialization
└── services # general service & database actions