/RPGGroupMakerAPI

An API to connect players and RPG groups

Primary LanguageTypeScriptGNU General Public License v3.0GPL-3.0

RPGGroupMakerAPI

An API to connect players and RPG groups.

If you have ever played RPG, you know that it can be quite hard sometimes to gather a group of friends for a session.

That is the pain point that the RPGGroupMakerAPI comes to fight against.

Using this API you can easily connect with a RPG group and start having fun as soon as the group's next session. Not only this, but you can connect with several groups, and even create your own group to invite your friends!

Table of Contents

📚 Background

This project was strongly inspired by Giuliana's Bezerra Adonis course on Udemy. I followed her lessons, and dug a little deeper, adding more testing cases, and this custom README section

The entire project was made using TDD, with the japa test runner and the awesome package supertest.

Important to know

  • This is not a comercial API, nor a package of any kind, it was made purely for learning purposes;
  • It is a open-source project, so feel free to open an issue, or a PR if you would like to contribute to it.

🔐 Security

All routes have strict authentication and authorization rules.

For every request (besides user login, and user creation) you must send a Bearer token following the opaque token convention.

For some requests that update private info, authorization is also verified using AdonisJs native bouncer

✨ Install

In order to run this project you should have a minimum knowledge of AdonisJs.

  1. Install all dependencies running
yarn

or, if you are using npm

npm i
  1. To run the project/tests, you will need a copy of the .env file. Feel free to contact me on LinkedIn or email to have a version of this file.

  2. Finally, once you have met all requirements above, simply run:

yarn dev

or, if you are using npm

npm run dev

This should run the development server on your localhost

🔥 Using the API

This API supports several request, such as:

  • Creating a user;
  • Login with a user;
  • Joining a RPG group;
  • Creating your own RPG group;
  • Accept/Reject others from joining your RPG group;
  • Etc.

You can see all supported features and their respective routes on the routes file

📝 License

This repository follows the license GPL V3.