Go to file
2026-06-08 17:16:17 +02:00
lecture_2 Add second lecture SQL examples 2026-06-08 17:01:47 +02:00
Lecture_1 Add second lecture SQL examples 2026-06-08 17:01:47 +02:00
.env.example Add project onboarding documentation 2026-06-01 16:55:24 +02:00
.gitignore Document local AI coding setup 2026-06-08 17:16:17 +02:00
.nvmrc Add project onboarding documentation 2026-06-01 16:55:24 +02:00
AGENTS.md Add project onboarding documentation 2026-06-01 16:55:24 +02:00
README.md Document local AI coding setup 2026-06-08 17:16:17 +02:00

RG Backend Academy

Educational full-stack project for learning backend development with Node.js, React, and a local PostgreSQL database.

The repository is intentionally small at the moment. Use this document as the baseline environment guide before adding the backend, frontend, database schema, tests, and deployment notes.

Planned stack

  • Node.js 22 LTS or newer
  • npm, pnpm, or another package manager selected by the project
  • React for the frontend application
  • PostgreSQL running locally on Ubuntu
  • Git for version control

Ubuntu environment setup

The commands below target Ubuntu or Ubuntu-based Linux distributions.

1. Install system dependencies

sudo apt update
sudo apt install -y curl ca-certificates gnupg git build-essential postgresql postgresql-contrib

2. Install Node.js 22 with nvm

Using nvm keeps the project Node.js version isolated from the system installation.

curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

Restart the terminal, then install and use Node.js 22:

nvm install 22
nvm use 22
node --version
npm --version

Expected Node.js version:

v22.x.x

This repository includes a .nvmrc file, so later terminal sessions can use:

nvm use

3. Start PostgreSQL

sudo systemctl enable --now postgresql
sudo systemctl status postgresql

4. Create a local development database

Use a dedicated application user instead of the default postgres superuser.

sudo -u postgres psql

Inside the PostgreSQL shell:

CREATE USER rg_academy WITH PASSWORD 'rg_academy';
CREATE DATABASE rg_academy_dev OWNER rg_academy;
GRANT ALL PRIVILEGES ON DATABASE rg_academy_dev TO rg_academy;
\q

Test the connection:

psql "postgresql://rg_academy:rg_academy@localhost:5432/rg_academy_dev"

Exit with:

\q

5. Environment variables

When the backend application is added, create a local .env file from the provided example file.

Expected baseline variables:

DATABASE_URL="postgresql://rg_academy:rg_academy@localhost:5432/rg_academy_dev"
NODE_ENV="development"

Do not commit .env files with secrets or local credentials.

Suggested repository structure

The exact structure may evolve, but this is the recommended starting point:

.
├── apps
│   ├── backend
│   └── web
├── packages
│   └── shared
├── docs
├── README.md
└── AGENTS.md

Development workflow

After the project code is added, the usual local workflow should be:

nvm use
npm install
npm run dev

Recommended scripts to add once the application exists:

  • npm run dev - start local backend and frontend development servers.
  • npm run test - run automated tests.
  • npm run lint - run static checks.
  • npm run format - format source files.
  • npm run db:migrate - apply database migrations.
  • npm run db:seed - seed local development data.

PostgreSQL quick reference

Open the project database:

psql "postgresql://rg_academy:rg_academy@localhost:5432/rg_academy_dev"

List databases:

\l

List tables:

\dt

Describe a table:

\d table_name

Troubleshooting

Check whether PostgreSQL is running:

sudo systemctl status postgresql

Restart PostgreSQL:

sudo systemctl restart postgresql

Check the installed Node.js version:

node --version

If psql cannot connect, verify that PostgreSQL is listening locally and that the database URL matches the user, password, host, port, and database name.

Documentation rules

  • Project documentation is written in English.
  • Code comments are written in English.
  • User-facing chat responses for this project should be in Czech unless the user asks otherwise.

Codex

Use Codex from the repository root so it can read README.md, AGENTS.md, and the local project files.

Start a new Codex session:

npx @openai/codex --no-alt-screen -s workspace-write

Resume an existing Codex session:

npx @openai/codex resume <session-id> --no-alt-screen -s workspace-write

For repository-specific agent behavior, see AGENTS.md.

Local AI coding setup

The following optional setup provides local coding assistance on Kubuntu or Ubuntu with Ollama, Aider, and the Continue extension for VS Code.

Ollama

Install Ollama:

curl -fsSL https://ollama.com/install.sh | sh
sudo systemctl status ollama

Download the recommended local models:

ollama pull qwen2.5-coder:1.5b-base
ollama pull qwen2.5-coder:7b
ollama pull qwen2.5-coder:14b
ollama pull nomic-embed-text

Verify that the Ollama API is available:

curl http://127.0.0.1:11434/api/tags

Recommended model usage:

Use case Model
Autocomplete qwen2.5-coder:1.5b-base
Daily coding qwen2.5-coder:7b
Larger refactoring and review qwen2.5-coder:14b
Embeddings nomic-embed-text

Aider

Install Aider with uv:

curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc
uv tool install aider-chat

Configure the local Ollama endpoint and optional aliases:

echo 'export OLLAMA_API_BASE=http://127.0.0.1:11434' >> ~/.bashrc
echo 'alias aider7="aider --model ollama_chat/qwen2.5-coder:7b"' >> ~/.bashrc
echo 'alias aider14="aider --model ollama_chat/qwen2.5-coder:14b"' >> ~/.bashrc
source ~/.bashrc

Start Aider from the repository root:

cd <project>
aider7

Ollama must be running locally on port 11434. Aider works best inside a Git repository and may ask to add its local files to .gitignore.

Continue for VS Code

Install the Continue extension from the VS Code extension view or with:

code --install-extension Continue.continue

Open the command palette with Ctrl+Shift+P, run Continue: Open Config, and use:

name: Local Ollama Coding
version: 0.0.1
schema: v1

models:
  - name: Qwen Coder 7B
    provider: ollama
    model: qwen2.5-coder:7b
    roles:
      - chat
      - edit
      - apply

  - name: Qwen Coder 1.5B
    provider: ollama
    model: qwen2.5-coder:1.5b-base
    roles:
      - autocomplete

  - name: Nomic Embeddings
    provider: ollama
    model: nomic-embed-text
    roles:
      - embed

Enable Continue tab autocomplete in the VS Code settings. Use Aider with Ollama for project-wide terminal changes, Continue for editor navigation and autocomplete, and Codex for larger repository tasks.