IsEven API - SaaS platform for checking if number is even 🚀
Tags: react, webdev, aws, node
Published: 2021-11-26 18:21:39

Have you ever heard about the SaaS platform for if a number is even? Well, I've decided to recreate a service like this of my own! 😄 

Not for the profit, of course - who would need the paid service for checking the parity of a number? 😄 I wanted to create a full-stack project from start to end and then deploy it. It seemed like a great challenge that would require gathering all my knowledge, structuring it, and maybe even learning some new stuff along. So this idea of creating a non-real SaaS platform fascinated me!

So this is it! I present to you my latest project - [is-even.eu](https://is-even.eu). It is open-source, so go ahead and check the [codebase](https://github.com/Skona27/is-even).

## About the project

The main idea behind this SaaS platform is that a customer can purchase a plan (different plans allow different API usage). He can then perform an analysis of a number via a protected route. Users must use API Key to have access to that route. The application tracks the usage for each user, and if he reaches the limit, he can no longer use our services.

**Core features are:**
- Users can signup and login,
- User can place orders and fulfill them,
- User can create API Keys
- User can use the service within his credits limit
- User can monitor the usage of his credits

## Technical informations

The project gathers some of the best practices of project development and maintenance. It shows how one can implement a working system from start to end, deploy it and monitor it. This project contains of:

- modern Frontend application written in `Next.js`
- robust Backend application written in `Nest.js`
- infrastructure as a code with `AWS CDK`
- Typescript codebase for every application
- docker environment for local development
- monorepo manager to control all the and its dependencies
- CI/CD pipelines for running tests and deployment

The frontend application is deployed on `Vercel`, one of the first choices for deploying the `Next.js` application. 

The backend application is deployed on `AWS ElasticBeanstalk`. I've found this challenging to create an infrastructure setup with AWS CDK, but it was worth it! Infrastructure as a Code is fantastic because now I can set it up from the start in no time!

This whole project is a template, ready to copy and use accordingly to your start-up idea! Feel free to fork it and adjust to your needs 😉

I've decided to use some new modern technologies in this project. One of the essential mentions is `XState` - a library that brings state machines to Javascript. I enjoy doing state management in `React` with that library.

**Other worth mentions are:**
- Stripe
- ChakraUI
- Rush.js as monorepo manager
- Next.js as frontend framework
- Nest.js as backend framework
- Multiple AWS services like: Cognito, RDS, EBS, ELB etc.

For complete documentation and more information, please check out the [official Github repository](https://github.com/Skona27/is-even) or special [page about the project](https://is-even.eu/about-the-project)

I encourage you to have a look, examine the code, and write your thoughts. What do you think about this project? What's missing or what could have been done differently? 

## Contributing

If you have a suggestion to improve this project, please fork the repo and create a pull request. You can also open an issue with the tag enhancement. Any contributions are welcome.

## References

If you wonder why I decided to go with monorepo, here are some good reasons that I've written in my previous article:

{% link https://dev.to/skona27/control-your-monorepo-2ka6 %}

Also, I've written a more hands-on tutorial for setting up the infrastructure with AWS CDK:

{% link https://dev.to/skona27/deploy-scalable-nodejs-application-with-postgres-database-using-aws-cdk-22l4 %}