API change and README updates
This commit is contained in:
parent
c65e225291
commit
3cdf3b54ed
@ -4,13 +4,16 @@ This is the API for my 2023-2024 FBLA Coding & Programming App
|
|||||||
|
|
||||||
1. Install [Dart SDK](https://dart.dev/get-dart).
|
1. Install [Dart SDK](https://dart.dev/get-dart).
|
||||||
2. Clone the repo .
|
2. Clone the repo .
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone https://git.marinodev.com/MarinoDev/FBLA24.git
|
git clone https://git.marinodev.com/MarinoDev/FBLA24.git
|
||||||
cd FBLA24/fbla-api/
|
cd FBLA24/fbla-api/
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Run `dart pub install` to install dart packages.
|
3. Run `dart pub install` to install dart packages.
|
||||||
4. Install [PostgreSQL](https://www.postgresql.org/) and set it up.
|
4. Install [PostgreSQL](https://www.postgresql.org/) and set it up.
|
||||||
5. Create `fbla` database in postgres.
|
5. Create `fbla` database in postgres.
|
||||||
|
|
||||||
```SQL
|
```SQL
|
||||||
CREATE DATABASE fbla
|
CREATE DATABASE fbla
|
||||||
WITH
|
WITH
|
||||||
@ -19,9 +22,11 @@ CREATE DATABASE fbla
|
|||||||
CONNECTION LIMIT = -1
|
CONNECTION LIMIT = -1
|
||||||
IS_TEMPLATE = False;
|
IS_TEMPLATE = False;
|
||||||
```
|
```
|
||||||
|
|
||||||
Make sure to change [username] to the actual username of your postgres instance.
|
Make sure to change [username] to the actual username of your postgres instance.
|
||||||
|
|
||||||
6. Create `businesses` table.
|
6. Create `businesses` table.
|
||||||
|
|
||||||
```SQL
|
```SQL
|
||||||
-- Table: public.businesses
|
-- Table: public.businesses
|
||||||
|
|
||||||
@ -48,9 +53,39 @@ TABLESPACE pg_default;
|
|||||||
ALTER TABLE IF EXISTS public.businesses
|
ALTER TABLE IF EXISTS public.businesses
|
||||||
OWNER to [username];
|
OWNER to [username];
|
||||||
```
|
```
|
||||||
|
|
||||||
Make sure to change [username] to the actual username of your postgres instance.
|
Make sure to change [username] to the actual username of your postgres instance.
|
||||||
|
|
||||||
7. Create `users` table.
|
7. Create `listings` table.
|
||||||
|
|
||||||
|
```SQL
|
||||||
|
-- Table: public.listings
|
||||||
|
|
||||||
|
-- DROP TABLE IF EXISTS public.listings;
|
||||||
|
|
||||||
|
CREATE TABLE IF NOT EXISTS public.listings
|
||||||
|
(
|
||||||
|
id integer NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
|
||||||
|
"businessId" integer NOT NULL,
|
||||||
|
name text COLLATE pg_catalog."default" NOT NULL,
|
||||||
|
description text COLLATE pg_catalog."default" NOT NULL,
|
||||||
|
type text COLLATE pg_catalog."default" NOT NULL,
|
||||||
|
wage text COLLATE pg_catalog."default",
|
||||||
|
link text COLLATE pg_catalog."default",
|
||||||
|
"offerType" text COLLATE pg_catalog."default" NOT NULL,
|
||||||
|
CONSTRAINT listing_pkey PRIMARY KEY (id)
|
||||||
|
)
|
||||||
|
|
||||||
|
TABLESPACE pg_default;
|
||||||
|
|
||||||
|
ALTER TABLE IF EXISTS public.listings
|
||||||
|
OWNER to [username];
|
||||||
|
```
|
||||||
|
|
||||||
|
Make sure to change [username] to the actual username of your postgres instance.
|
||||||
|
|
||||||
|
8. Create `users` table.
|
||||||
|
|
||||||
```SQL
|
```SQL
|
||||||
-- Table: public.users
|
-- Table: public.users
|
||||||
|
|
||||||
@ -68,11 +103,19 @@ CREATE TABLE IF NOT EXISTS public.users
|
|||||||
TABLESPACE pg_default;
|
TABLESPACE pg_default;
|
||||||
|
|
||||||
ALTER TABLE IF EXISTS public.users
|
ALTER TABLE IF EXISTS public.users
|
||||||
OWNER to postgres;
|
OWNER to [username];
|
||||||
```
|
```
|
||||||
8. Set environment variables `JOBLINK_POSTGRES_ADDRESS` (IP address), `JOBLINK_POSTGRES_PORT` (default 5432), `JOBLINK_POSTGRES_USERNAME`, and `JOBLINK_POSTGRES_PASSWORD` to appropriate information for your postgres database. Also set `JOBLINK_SECRET_KEY` to anything you want to generate JSON Web Tokens.
|
|
||||||
9. Set lib/create_first_user.dart username and password variables at top of file and run with `dart run lib/create_first_user.dart`.\
|
Make sure to change [username] to the actual username of your postgres instance.
|
||||||
Note: the username and password you use here will be what you use to log into the app as an admin.
|
|
||||||
|
8. Set environment variables `JOBLINK_POSTGRES_ADDRESS` (IP address), `JOBLINK_POSTGRES_PORT` (
|
||||||
|
default 5432), `JOBLINK_POSTGRES_USERNAME`, and `JOBLINK_POSTGRES_PASSWORD` to appropriate
|
||||||
|
information for your postgres database. Also set `JOBLINK_SECRET_KEY` to anything you want to
|
||||||
|
generate JSON Web Tokens.
|
||||||
|
9. Set lib/create_first_user.dart username and password variables at top of file and run
|
||||||
|
with `dart run lib/create_first_user.dart`.\
|
||||||
|
Note: the username and password you use here will be what you use to log into the app as an
|
||||||
|
admin.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
@ -83,9 +126,14 @@ Note the address it is serving at, you will need this to connect it to the UI, a
|
|||||||
|
|
||||||
### Docker
|
### Docker
|
||||||
|
|
||||||
Run it in a docker container with [Docker Build](https://docs.docker.com/reference/cli/docker/image/build/) and [Docker Compose](https://docs.docker.com/compose/) using the included [Dockerfile](Dockerfile) and [docker-compose.yml](docker-compose.yml) files. If using `Docker Compose`, change the first portion of the volumes path on line 9 to any desired storage location.\
|
Run it in a docker container
|
||||||
|
with [Docker Build](https://docs.docker.com/reference/cli/docker/image/build/)
|
||||||
|
and [Docker Compose](https://docs.docker.com/compose/) using the included [Dockerfile](Dockerfile)
|
||||||
|
and [docker-compose.yml](docker-compose.yml) files. If using `Docker Compose`, change the first
|
||||||
|
portion of the volumes path on line 9 to any desired storage location.\
|
||||||
Note the address it is serving at, you will need this to connect it to the UI, and to run tests.
|
Note the address it is serving at, you will need this to connect it to the UI, and to run tests.
|
||||||
|
|
||||||
### Testing
|
### Testing
|
||||||
|
|
||||||
You can test all functionality of your api with `dart run test/fbla_api_test.dart`, setting `apiAddress` on line 8 to your api address.
|
You can test all functionality of your api with `dart run test/fbla_api_test.dart`,
|
||||||
|
setting `apiAddress` on line 8 to your api address.
|
||||||
|
|||||||
@ -6,8 +6,8 @@ import 'package:fbla_ui/shared/global_vars.dart';
|
|||||||
import 'package:fbla_ui/shared/utils.dart';
|
import 'package:fbla_ui/shared/utils.dart';
|
||||||
import 'package:http/http.dart' as http;
|
import 'package:http/http.dart' as http;
|
||||||
|
|
||||||
// var apiAddress = 'https://homelab.marinodev.com/fbla-api';
|
var apiAddress = 'https://homelab.marinodev.com/fbla-api';
|
||||||
var apiAddress = 'http://192.168.0.114:8000/fbla-api';
|
// var apiAddress = 'http://192.168.0.114:8000/fbla-api';
|
||||||
|
|
||||||
var client = http.Client();
|
var client = http.Client();
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user