Go to file
2026-06-01 17:25:29 +02:00
.env.example Add project onboarding documentation 2026-06-01 16:55:24 +02:00
.gitignore Initial commit 2026-06-01 14:16:44 +00: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 Codex usage 2026-06-01 17:25:29 +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.