* update files for use with biom
* fix prettier formats
* minor biome fixes
* fix additional files
* update linting rules
* fix additional linting errors
* fix linting errors
* update lib
* run check in the lib direcotyr
* update some linting errors
* fix problems
* move addtional files to stricter linting
* fix imports and linting errors
* update some biome settings
* fix query parser
* quick wins
* update files
* fix addtional things
* fix context files
* update additional biome files
* fix additional files
* biome fixes
* fixin files
* fix broken
* fix additional files and problems
* fix biome buster stuff
* fix helpers and
* stricter linting
* fixed
* fix missing types
* fix linting
* remove missing imports
* update more biome test stuff
* update fixes
* update imports
* more updates
* fix some linting errors
* fix broken children as prop errors
* lint ci
* update lint check
* Update package.json
* Update next.config.mjs
* fix some broken tests
* update some tests
* chore(versions): bump api to v0.1.16; bump web to v0.1.16; bump cli to v0.1.16 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* Update web-unit-tests.yml
* fix some tests
* chore(versions): bump api to v0.1.17; bump web to v0.1.17; bump cli to v0.1.17 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* update ignore files
* chore(versions): bump api to v0.1.18; bump web to v0.1.18; bump cli to v0.1.18 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* Update web-lint.yml
* chore(versions): bump api to v0.1.19; bump web to v0.1.19; bump cli to v0.1.19 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* update boime package settings
* chore(versions): bump api to v0.1.20; bump web to v0.1.20; bump cli to v0.1.20 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* save to dropdown bug fixes
* update console logs
* update chart animation
* chore(versions): bump api to v0.1.21; bump web to v0.1.21; bump cli to v0.1.21 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* update build
* chore(versions): bump api to v0.1.22; bump web to v0.1.22; bump cli to v0.1.22 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* additinal updates for biome 2
* update imports
* chore(versions): bump api to v0.1.23; bump web to v0.1.23; bump cli to v0.1.23 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* final updates
* chore(versions): bump api to v0.1.24; bump web to v0.1.24; bump cli to v0.1.24 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* Update dashboard-updates.test.ts
* chore(versions): bump api to v0.1.25; bump web to v0.1.25; bump cli to v0.1.25 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* crazy fix
* chore(versions): bump api to v0.1.26; bump web to v0.1.26; bump cli to v0.1.26 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* more attempts for stable tests
* chore(versions): bump api to v0.1.27; bump web to v0.1.27; bump cli to v0.1.27 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* update tests
* split the test off
* chore(versions): bump api to v0.1.28; bump web to v0.1.28; bump cli to v0.1.28 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* Update pie-styling-updates.spec.ts
* Create web-e2e-tests-optimized.yml
* chore(versions): bump api to v0.1.29; bump web to v0.1.29; bump cli to v0.1.29 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* update tests
* chore(versions): bump api to v0.1.30; bump web to v0.1.30; bump cli to v0.1.30 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* Update web-e2e-tests-optimized.yml
* chore(versions): bump api to v0.1.31; bump web to v0.1.31; bump cli to v0.1.31 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* Update web-e2e-tests-optimized.yml
* chore(versions): bump api to v0.1.32; bump web to v0.1.32; bump cli to v0.1.32 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* Update web-e2e-tests-optimized.yml
* chore(versions): bump api to v0.1.33; bump web to v0.1.33; bump cli to v0.1.33 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* Update web-e2e-tests-optimized.yml
* chore(versions): bump api to v0.1.34; bump web to v0.1.34; bump cli to v0.1.34 [skip ci]
* chore: update tag_info.json with potential release versions [skip ci]
* Update web-e2e-tests-optimized.yml
* Update web-e2e-tests-optimized.yml
* Revert "Update web-e2e-tests-optimized.yml"
This reverts commit
|
||
---|---|---|
.. | ||
.claude/commands | ||
.cursor/rules | ||
documentation | ||
libs | ||
migrations | ||
prds | ||
server | ||
supabase | ||
.cursorrules | ||
.gitignore | ||
.windsurfrules | ||
CLAUDE-LIBRARY-INDEX.md | ||
CLAUDE.md | ||
Cargo.toml | ||
Dockerfile | ||
README.md | ||
diesel.toml | ||
knowledge.md | ||
makefile |
README.md
Buster Business Intelligence API
This API runs the Buster Business Intelligence service.
Get Started
- Load the .env file in the root of the project.
- In your terminal run
make dev
. - Service is now available at http://localhost:3001
Repo Structure
All functional code is located in the src
library. The main.rs
file is the entry point for the application.
The repo is organized like so:
routes/
contains the routes for the API. Each route is contained in its own file with a handler function.types/
this contains general types that will be used across the app such as database types. If you would define a type multiple times, it shoudl go here. However if a type is constrained to a specific function, it should not go heremiddleware/
this contains middleware for the app.utils/
this contains clients and functions that would frequently be used across the app. If you would define a function multiple times, it should go here. However if a function is constrained to a specific route, it should not go heredatabase/
this contains the database connection helpers, migrations, and database ORM system powered by Diesel.
routes/
The routes/
folder contains the routes for the API. The entrypoint to the routes is in the mod.rs
file.
Routes are grouped into folders based on functionality. For example, a /users
folder would contain all of my POST
, GET
, PUT
, DELETE
routes for the users resource.
Each route is defined in its own file with a handler function. This function receives user information through our middleware and uses types to define the input and output of each request.
Tests should be written directly in the route file and on the handler.
types/
The types/
folder contains general types that will be used across the app. If you would define a type multiple times, it should go here. However if a type is constrained to a specific route, it should not go here
Types should be grouped into folders based on the resource they are related to. For example, a /config
folder would contain all of the types related to typed configurations throughout the app.
middleware/
The middleware/
folder contains middleware for the app. Middleware is a function that runs before the route handler. We don't use that much middleware so there are just two files in this folder.
utils/
This folder contains the clients/
folder and other groups of functions that would frequently be used across the app. If you would define a function multiple times, it should go here. However if a function is constrained to a specific route, it should not go here
The clients/
folder contains clients for the app. A client represents a functional service like OpenAI, Supabase, etc. These clients should always be defined as struct
s with methods implemented on them.
database/
This folder contains the database connection helpers, migrations, and database ORM system powered by Diesel.