Skip to content

Latest commit

 

History

History
104 lines (67 loc) · 2.7 KB

README.md

File metadata and controls

104 lines (67 loc) · 2.7 KB

UpLeveled Next.js example - Fall 2024

The Next.js example - Fall 2024 is a project that demonstrates how to use Next.js to build a full-stack web application. It is part of the curriculum for the UpLeveled Fullstack Web Development Bootcamp.

alt text

Screenshot 2024-10-16 at 13 35 18

Technologies

  • Next.js
  • Postgres.js
  • Jest
  • Playwright

Database Setup

If you don't have PostgreSQL installed yet, follow the instructions from the PostgreSQL step in UpLeveled's System Setup Instructions.

Copy the .env.example file to a new file called .env (ignored from Git) and fill in the necessary information.

Then, connect to the built-in postgres database as administrator in order to create the database:

Windows

If it asks for a password, use postgres.

psql -U postgres

macOS

psql postgres

Linux

sudo -u postgres psql

Once you have connected, run the following to create the database:

CREATE DATABASE <database name>;
CREATE USER <user name> WITH ENCRYPTED PASSWORD '<user password>';
GRANT ALL PRIVILEGES ON DATABASE <database name> TO <user name>;
\connect <database name>
CREATE SCHEMA <schema name> AUTHORIZATION <user name>;

Quit psql using the following command:

\q

On Linux, it is best practice to create an operating system user for each database, to ensure that the operating system user can only access the single database and no other system resources. A different password is needed on Linux because passwords of operating system users cannot contain the user name. First, generate a random password and copy it:

openssl rand -hex 16

Then create the user, using the database user name from the previous section above. When you are prompted to create a password for the user, paste in the generated password.

sudo adduser <user name>

Once you're ready to use the new user, reconnect using the following command.

Windows and macOS:

psql -U <user name> <database name>

Linux:

sudo -u <user name> psql -U <user name> <database name>

Run Tests

Jest

pnpm jest

Playwright

pnpm playwright test

Deployment

  • Fly.io
  • Docker