Geola

The premium-grade Discord bot

Intro

Geola is a Discord bot with various features to help people who maintain servers.

Working on Geola has taught me a lot about creating a full stack project. Not only does it involve a frontend, backend, and database, but it also integrates with APIs and has a rich dashboard.

Tech Stack

Geola is a Node.js application that's hosted on DigitalOcean. The website is written in React and Next.js, and the backend is an express server. MongoDB is used for data storage, since its document-based structure is convenient for my use case.

Integrating with Discord

Geola is written using discord.js, a library that makes it easier to interact with the Discord API. Logging in to the online dashboard is also handled by Discord using OAuth.

The Dashboard

The dashboard is the bulk of the website, and it's where users can customize the bot to their needs. React components have proven to be especially useful while building the dashboard since it makes reusing custom inputs easier and more convenient.

MongoDB

I use MongoDB for a data storage solution since its document-based structure fits into the object-oriented nature of the project. The fact that data is stored as an object makes it easy to query data, even if it's nested. I also use Mongoose since it implements schemas while also making interaction with the database a lot easier.

Deployment

Geola runs on an Ubuntu server hosted on DigitalOcean. I use PM2 to manage processes since it's basic yet customizable. Since I have multiple projects on my server, I use Nginx server blocks to route traffic to the correct express server for the website and Let's Encrypt to secure my website with an SSL certificate.