No description
Find a file
2024-02-26 21:46:33 +01:00
public Fix: Finished Backend 2024-02-26 21:46:33 +01:00
src Fix: Finished Backend 2024-02-26 21:46:33 +01:00
.dockerignore Add docker 2024-01-05 01:29:42 +01:00
.eslintrc.json Fix: Finished Backend 2024-02-26 21:46:33 +01:00
.gitignore chore: squashed some commits, which are not for public viewing 2024-01-05 01:29:38 +01:00
.prettierrc.json chore: squashed some commits, which are not for public viewing 2024-01-05 01:29:38 +01:00
discord_client_testing.http feat: complete last commit 2024-01-16 20:24:48 +01:00
Dockerfile chore: Create Readme 2024-01-16 23:57:40 +01:00
drizzle.config.ts Unfinished 2024-02-18 22:02:52 +01:00
package.json Fix: Finished Backend 2024-02-26 21:46:33 +01:00
pnpm-lock.yaml Fix: Finished Backend 2024-02-26 21:46:33 +01:00
README.md Unfinished 2024-02-18 22:02:52 +01:00
tsconfig.json feat: complete last commit 2024-01-16 20:24:48 +01:00
vite.config.ts Unfinished 2024-02-18 22:02:52 +01:00

li'l Judd - Competitive Splatoon Bot

Welcome to li'l Judd, your go-to bot for enhancing your competitive Splatoon experience! Whether you're looking for match statistics, team coordination, or general Splatoon information, li'l Judd has got you covered.

Features

  • Match Statistics: Track and analyze your Splatoon matches to improve your gameplay.
  • Team Coordination: Plan strategies and coordinate with your team more effectively.
  • General Splatoon Information: Get information about weapons, maps, and game updates.

Getting Started

To get started with li'l Judd, follow the instructions below.

Prerequisites

  • Node.js and pnpm installed (pnpm is strongly recommended for local development)
  • Docker (optional, for containerized deployment)
  • A Font Awesome subscription (required for the paid version used)

Installation

  1. Clone the repository:

    git clone https://git.moonleay.net/Websites/liljudd-website.git
    
  2. Install dependencies:

    cd lil-judd
    
    # Install pnpm if not already installed
    npm i -g pnpm
    
    # Add token to authenticate when using installing Font Awesome packages
    echo "@fortawesome:registry=https://npm.fontawesome.com/" > ~/.npmrc
    echo "//npm.fontawesome.com/:_authToken=<YOUR_TOKEN>" >> ~/.npmrc
    
    pnpm install
    
  3. Set up environment variables:

    Create a .env file in the root directory and add the following variables:

    VITE_DISCORD_CLIENT_ID=your_discord_client_id
    VITE_DISCORD_CLIENT_SECRET=your_discord_client_secret
    VITE_DISCORD_BOT_TOKEN=your_discord_bot_token
    VITE_DISCORD_BOT_PERMISSIONS=18977581952080
    
    VITE_AUTH_SECRET=your_auth_secret
    
    VITE_DATABASE_URL=your_database_url
    

Recieve your discord applications CLIENT_ID & CLIENT_SECRET, as well as the bot token from the Applications dashboard.

Your VITE_AUTH_REDIRECT_URL should look like this: https://<hostname>/api/auth/callback/discord.

Composite your VITE_DATABASE_URL like postgres://postgres:adminadmin@0.0.0.0:5432/db.

Development

The duplicate DATABASE_URL is only needed for Drizzle Studio.

VITE_AUTH_REDIRECT_PROXY_URL=your_auth_redirect_proxy_url

DATABASE_URL=your_database_url

Usage

  • Run development server:

    pnpm dev
    # Use --host if you have set up a reverse proxy to test auth with callback to your dev box
    pnpm dev --host
    
  • Build for production:

    pnpm build
    
  • Start production server:

    pnpm start
    
  • Generate openapi types from specs:

    openapi.json (from discord-api-spec repo) -> discord.d.ts

    liljudd.json -> liljudd.d.ts

    pnpm discord-openapi-gen
    pnpm liljudd-openapi-gen
    

    Drizzle Studio:

    Explore the database with ease through the intuitive web-based interface of Drizzle Studio, offering a visual and user-friendly way to interact with the data behind the scenes.

    pnpm drizzle-studio
    
  • Docker Container:

    docker build --build-arg FONT_AWESOME_TOKEN=<YOUR_TOKEN> -t $image_name .
    

Contributing

If you'd like to contribute to li'l Judd, feel free to open an issue or submit a pull request. Your contributions are highly appreciated!

License

This project is licensed under the GPL v3 License.

Happy splatting! 🦑🎮