Goal of sendou.ink is to provide useful tools and resources for the Splatoon community.
Live version: https://sendou.ink/
- React (via Next.JS)
- TypeScript
- Node.js
- PostgreSQL (via Prisma 2)
🦑 Planner tool where you can draw on any map in the game to conveniently make up game plans
🐙 Calendar that collects together all the events happening in the community
🦑 Users can make an account and submit their builds and browse builds made by others
🐙 It is possible to submit yourself as "free agent". If two FA's like each other they are notified and a new team can be founded
🦑 X Rank Top 500 results can be browsed through far more conveniently than on the official app
🐙 X Rank Top 500 leaderboards to compare yourself against other players
🦑 Browse through detailed tournament results
🐙 Choose between light and dark mode
With the following steps you can access a few pages that don't need a database. For example: home page (/
), build analyzer (/analyzer
) and map planner (/plans
)
- Clone the project
- Run
npm i
to install dependencies - Run
npm run compile
to compile translation files. - Run
npm run dev
to start the development server at http://localhost:3000/
In addition to the steps above the steps below enable access to rest of the pages.
- Create a file called
.env
in theprisma
folder. In it you need an environmental variable calledDATABASE_URL
that contains the URL to a running PostgreSQL database. For example mine looks like this while developing:
DATABASE_URL=postgresql://sendou@localhost:5432
You can see Prisma's guide on how to set up a PostgreSQL database running locally for more info.
- Once you have a database running run
psql -d postgres < dump.sql
in theprisma
folder (assuming your database name ispostgres
). This formats the database with the correct tables and fills it with real data dumped from the production site.
In addition to the steps above the steps below enable logging in.
- Create a file called
.env.local
in the root folder. In it you need following variables:
DISCORD_CLIENT_ID=
DISCORD_CLIENT_SECRET=
JWT_SECRET=
a) Go to https://discord.com/developers/applications
b) Select "New Application"
c) Go to your newly generated application
d) On the "General Information" tab both "CLIEN ID" and "CLIENT SECRET" can be found.
e) On the "OAuth2" tab add http://localhost:3000/api/auth/callback/discord
in the list of redirects.
JWT_SECRET
can be any randomly generated reasonably long string.
Check out the list of existing issues I haven't assigned for myself to find issues I could accept help with. Before you start working on one please leave a comment.
Is there a bug or a new feature that isn't an issue yet? Feel free to leave one.
Please always leave a comment or create an issue before working on anything.