This is a Next.js project bootstrapped with create-next-app
.
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.js
. The page auto-updates as you edit the file.
This project uses next/font
to automatically optimize and load Inter, a custom Google Font.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
- Next.js
- Postgres.js
Copy the .env.example
file to a new file called .env
(ignored from Git) and fill in the necessary information.
Follow the instructions from the PostgreSQL step in UpLeveled's System Setup Instructions.
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 <user name> AUTHORIZATION <user name>;
Quit psql
using the following command:
\q
On Linux, you will also need to create a Linux system user with a name matching the user name you used in the database. It will prompt you to create a password for the user - choose the same password as for the database above.
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>
type User = {
id: number;
username: string;
// Omit passwordHash for security
first_name: string;
last_name: string;
genre: string;
personal_description: string | null;
music_instrument: string | null;
};
type Error = {
message: string;
};
/
- GET => endpoints[]
/users
- GET => user[]
- POST => user | error
/users/:id
- PUT => user | error
- DELETE => user | error
- GET => user | error
/register
- POST => user | error
/login
- POST => user | error
//