This is a personal project to learn about frontend development with React and backend development with NodeJS and Express.
Full Stack application to manage courses using the PERN stack:
- PostgreSQL for the database
- Express for the backend server
- React for the frontend
- Node.js for runtime
REST API to manage courses — it supports full CRUD:
- Create new courses
- Read existing courses (get all or by ID)
- Update existing courses
- Delete courses
For now, the frontend client shows all courses and allows searching by ID.
- Node.js (v18+ recommended)
- PostgreSQL
- Git
git clone git@github.com:WarioNeila86/courses-fullstack-application.git
cd courses-fullstack-applicationnpm install- Create PostgreSQL DB user
- Windows:
psql -U postgres CREATE USER "db-user" PASSWORD 'db-password' CREATEDB;
- Linux:
sudo -u postgres psql -c "CREATE USER \"db-user\" PASSWORD 'db-password' CREATEDB;"
- Windows:
- Create a
.envfile in the root directory and add the following variables:DB_DEVELOPMENT_USERNAME=db-user DB_DEVELOPMENT_PASSWORD=db-password
npm run db-setup- Start the app:
npm run start - Start the server:
npm run server-start- server can be accessed on http://localhost:4000/ - Start the server in development mode (it will automatically restart after changes are made):
npm run server-start-dev - Start the client:
npm run client-run-dev- client can be accessed on http://localhost:3000/ - After starting the server, Swagger documentation can be accessed on http://localhost:4000/api/docs/
npm test