pablopelardas / learn-cicd-starter

The starter code for the "Learn CICD" course on Boot.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

learn-cicd-starter (Notely)

code coverage badge

This repo contains the starter code for the "Notely" application for the "Learn CICD" course on Boot.dev.

This README is for reference purposes only! Follow the instructions in the course, don't start doing all the steps here in the README.

Local Development

Make sure you're on Go version 1.20+.

Create a .env file in the root of the project with the following contents:

PORT="8080"

Run the server:

go build -o notely && ./notely

This starts the server in non-database mode. It will serve a webpage at http://localhost:8080. However, you won't be able to interact with the webpage until you connect it to a MySQL database and run the migrations.

Database Setup

This project uses a MySQL database for persistent storage. You can install MySQL locally for local development, or connect to a remote database.

Add your database connection string to your .env file. Here's an example:

DATABASE_URL="username:password@host/dbname?tls=true"

Once you have an empty database, you'll need to run migrations to create the schema. Make sure you have goose installed:

go install github.com/pressly/goose/v3/cmd/goose@latest

Then run the migrations:

./scripts/migrateup.sh

Start the server:

go build -o notely && ./notely

Because the DATABASE_URL environment variable is set, the server will connect to the database and serve the webpage at http://localhost:8080. The page should be fully functional now. You can:

  • Create a user (login as that user)
  • Save notes
  • Logout (To log in again you'll just create a new user)

The purpose of this project is to just be a simple CRUD app that we can use to practice CI/CD. It's not meant to be a fully functional app.

About

The starter code for the "Learn CICD" course on Boot.dev


Languages

Language:Go 60.2%Language:HTML 37.9%Language:Shell 1.0%Language:Dockerfile 0.9%