Mylo/cs
This project has three main parts:This Frontend web app.Discord Bot built with Typescript and Discordjs.MySQL database in Planetscale.Featured technologiesTypescriptJavascript superset that makes it actually safe (and kinda fun) to use.NextjsNext is the Javascript/React framework that I chose for this project, since it's currently the one that interests me the most and fits my needs.TailwindI really love how much Tailwind speeds up my CSS and I consider it the best way to have CSS in the same file as your component.Shadcn/ui.I chose to use a Component Library like Shadcn/ui because it allowed me to be more focused on my code, instead of styling. It increased my development time, and it's the one that I find more easy to customize if I need to.Shadcn/ui needs Radix-ui to work.Prisma and MySQL with PlanetscaleI'll always be against writing SQL manually. A person makes mistakes daily but those mistakes should never reach your Database. Prisma is an ORM (Object Relational Mapping) that works as a layer between your Frontend/Backend and your Database. All the SQL operations are Javascript/Typescript methods with great naming. You can basically type what you want and it will be a valid SQL operation.Next-AuthAuthentication has never been easier than with Next-auth.Check all the other packages in the package.json file.Core featuresFROM THE WEBSITE:Create a "Server" in the Database with the same ID as your Discord Server (required by the Discord Bot to work).Search for all the nades in all the servers you're a member.Search for all the nades in a specific server.Leave a server so you won't see the server's nades.AS SERVER ADMIN/OWNER:Manage the server nades (see all pending nades, approve nades, edit and delete them).Manage the server members (see all members, ban a member from searching your nades or unban a member, give/remove ADMIN role).Delete your server with all the nades.FROM A DISCORD SERVER:Upload nades only if you or the server owner created the "server" in the website previously.The Discord Bot is always checking in the shared database if the server he's working on exists.Search for a specific nade or nades that match your query (nade type, author, map, title or description).