From f121febdad158ea7d14670f74bbe7345b7beba4b Mon Sep 17 00:00:00 2001 From: saddiqs1 Date: Fri, 19 Jan 2024 16:52:24 +0000 Subject: [PATCH] Project Cleanup (#8) * update readme, seeding works * updated readme * updated readme --- README.md | 67 ++++++++++++++++++++++++++++++++++++++--------- database/seed.ts | 54 ++++++++++++++++++++++++++++++++++---- preview-1.png | Bin 0 -> 23649 bytes preview-2.png | Bin 0 -> 27563 bytes 4 files changed, 103 insertions(+), 18 deletions(-) create mode 100644 preview-1.png create mode 100644 preview-2.png diff --git a/README.md b/README.md index f0e4199..3a23e0c 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,53 @@ -This is a basic [Next.js](https://nextjs.org/) template with [Mantine Core & Notifications](https://mantine.dev/) setup. +# CS Crosshair Site + +[![Deploy](https://github.com/saddiqs1/cs-crosshairs/actions/workflows/main-deploy.yml/badge.svg)](https://github.com/saddiqs1/cs-crosshairs/actions/workflows/main-deploy.yml) + +Back in the good old days of CS:GO, we had the `apply_crosshair_code CSGO-...` command to allow us to quickly switch crosshairs. With the launch of CS2, this was removed, with no mention as to whether it would be returned or not. So in the meantime, you can use this site to enter in a crosshair code and copy all the crosshair commands to your clipboard to allow you to be able to switch crosshair using the in game console. +![Preview 1](preview-1.png) + +You can also store crosshairs on the site, to allow you to be able to switch quickly between preferred crosshairs on the fly mid game. +![Preview 2](preview-2.png) + +## Tech Stack / Main Packages Used + +- [NextJs](https://nextjs.org/) with [Typescript](https://www.typescriptlang.org/) +- [SWR](https://swr.vercel.app/) +- [Iron Session](https://github.com/vvo/iron-session) +- [Mantine Component Library (v6)](https://v6.mantine.dev/pages/getting-started/) +- [Kysely](https://kysely.dev/) with [kysely-codegen](https://github.com/RobinBlomberg/kysely-codegen) +- [Postgres](https://www.postgresql.org/) + +## Prerequisites + +You will need to install the following in order to build, run and develop this repo locally: + +- [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) +- [Node & `npm`](https://nodejs.org/en/download) + - Alternatively you can download both of these via [`nvm`](https://github.com/nvm-sh/nvm#installing-and-updating) +- [Postgres](https://www.postgresql.org/download/) ## Getting Started -1. Run the development server: +1. Create a file at the root level called `.env.local`, following the `.env example` file. Fill in the relevant gaps. + +2. Install all packages. ```bash - npm run dev + npm i ``` -2. Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. +3. Run the `migrate` command to initialise your database, and optionally run the `db:seed` command to seed your database with example data to start off with. + + ```bash + npm run migrate + npm run db:seed + ``` + +4. Run the development server and view the page in your browser at [http://localhost:3000](http://localhost:3000). + + ```bash + npm run dev + ``` ## Database Commands @@ -24,7 +63,7 @@ This is a basic [Next.js](https://nextjs.org/) template with [Mantine Core & Not npm run migrate ``` -- Generate your database types. You should run this everytime after you have run a new migration. +- Generate your database types. You should run this every time after you have run a new migration. ```bash npm run db:generate @@ -60,13 +99,15 @@ This is a basic [Next.js](https://nextjs.org/) template with [Mantine Core & Not npm run dev:reset-db ``` -### TODO +## Contribution Guide + +For simplicity's sake, we are using the [`issues`](https://github.com/saddiqs1/cs-crosshairs/issues) tab as a way to track tasks that need doing. Feel free to pick up anything from this list and contribute in any way possible! + +The major design philosophy to keep in mind when developing anything on this site is to **keep the site as lightweight and as performant as possible**. Ideally players will be using this site whilst playing CS at the same time, and every frame matters whilst playing, so whenever possible avoid anything overly resource intensive e.g. over the top animations. + +## Contact Me -- [ ] Fix `csgo-sharecode` package import -- [ ] Show crosshair style within preview -- [ ] toggle between 16:9 vs 4:3 for crosshair preview -- [ ] allow user to save crosshair -- [ ] validation on converter page +If you need any help/want to ask any questions, feel free to reach out to me in any of the following ways: -- [ ] create login -- [ ] create ui for entering in and saving crosshairs +- Twitter: [@shoobie_cs](https://twitter.com/shoobie_cs) +- Discord: shoobie96 diff --git a/database/seed.ts b/database/seed.ts index 73c4f0d..7394617 100644 --- a/database/seed.ts +++ b/database/seed.ts @@ -2,21 +2,65 @@ import chalk from 'chalk' import { getDb, getEnv } from './utils' import { Kysely } from 'kysely' import { DB } from './database' +import { createInterface } from 'readline' async function main(db: Kysely) { - console.log(chalk.gray(`Seeding currently unimplemented...`)) + console.log(chalk.blue(`Started Seeding...\n`)) - /* - TODO: Implement below. Take developer prompt to create a user, with either preset crosshair options or allow them to enter in some. + const rl = createInterface({ + input: process.stdin, + output: process.stdout, + }) + + const askQuestion = (query: string): Promise => { + return new Promise((resolve) => + rl.question(chalk.magenta(`> ${query}`), resolve) + ) + } + + const steamId64 = await askQuestion('Enter steamid64 value of user: ') + const insertCrosshairs = await askQuestion( + 'Do you want to enter example crosshairs? (y/n): ' + ) - console.log(chalk.blue(`Starting Seed...`)) + rl.close() await db.transaction().execute(async (trx) => { // Any seeding happens here. + await db + .insertInto('users') + .values({ id: 1, steam_uid: steamId64 }) + .executeTakeFirstOrThrow() + console.log(chalk.greenBright(`\nUser ${steamId64} added.`)) + + if (insertCrosshairs.toLowerCase() === 'y') { + const user = await db + .selectFrom('users') + .select('id') + .where('steam_uid', '=', steamId64) + .executeTakeFirstOrThrow() + + await db + .insertInto('crosshairs') + .values([ + { + user_id: user.id, + name: 'Blue Small', + crosshair: 'CSGO-9r8iB-9WwzR-tndTZ-oQo6P-nysyM', + }, + { + user_id: user.id, + name: 'Yellow Thick', + crosshair: 'CSGO-5fKKR-Eab4o-viAxH-Xvx38-T3SKF', + }, + ]) + .execute() + + console.log(chalk.greenBright(`Crosshairs added.\n`)) + } }) console.log(chalk.greenBright(`Finished Seeding!`)) - */ } const env = getEnv() diff --git a/preview-1.png b/preview-1.png new file mode 100644 index 0000000000000000000000000000000000000000..9bf5832d6e625dd7cc76dc39d0953a1e8c001d76 GIT binary patch literal 23649 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 Lw`0{uFWvtypCt9b literal 0 HcmV?d00001 diff --git a/preview-2.png b/preview-2.png new file mode 100644 index 0000000000000000000000000000000000000000..fe9345eb83b93836f5aaec14e722c6ede99377ac GIT binary patch literal 27563 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

!G%+9eu6iMK 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 cBg-0