Me And Amplication : Starting Open Source Journey.
Tags: amplication, opensource, nodejstool, microservices
Published: 2022-10-29 19:05:30

Hello, Everyone.

---

A Happy October to you all ☺🌸.

In this post, I will be sharing with you my experience discovering the nodeJs app development tool- **Amplication**.

With the hectic start of October with exams,  assignments, project work and spending the majority of the day at college, working on anything else was daunting.

*Then How did I have the time to learn about amplication?*

---

## I found amplication:

When one of my acquaintances shared with me a website that curated the list of repos that encouraged contributions via swags, I was ~~enchanted~~ motivated to find at least one repo to contribute.
And amplication was at the top of the list because of course it was cause it was fate. 
Their swag list is worth the effort and time 👌. 
So I took a look into it, with their well-described README it was a matter of seconds before I decide that I wanted to be a part of this.

And then I leapt into the world of amplication.

## I found an issue:

I found and requested to be assigned to an issue that was labelled good-first-issue.
The issue: To update the FAQs with microservices and plugins. And got assigned to fix it.
I was elated to contribute 😆.

After taking much-needed time out of my daily tasks, to make a better contribution I looked into their website and documents. Read through all the necessary docs for my issue and completely got gobsmacked(😳) with all the new technologies, implementations and software paradigms that the amplication employed to make it a low-code development tool. With all that new info came the questions of the How, Why, What, and Where. I tried to sort them and pen them down in a question-and-answer format that would be appropriate to add to the FAQ area.

## I found the fix: 
After a lot of internal debate and, of course, google search on how to write a good FAQ, how to make inquisitive questions, How the FAQ questions should be and a lot more reading about the technical terms. I made a draft of all questions I thought as a user should be included and would be important to have an answer about and finally(😭) made a PR.

_Because being a new contributor to an open source-a large community, induced pressure, expectations and other unmotivating feelings along with the stress of monthly exams, I had to quash those thoughts and take a deep deep breath to complete the task rather than 
halt midway and give up._

## **But the most important part**

### Knowledge I gained about and through the amplication:

{% collapsible Low-Code %}

- Low code means making things much easier and simpler with the use of a graphical interface to make processes and applications without needing to do everything via codes and consequently saving time
- Amplication provides you with an Admin UI to accelerate the development of backend applications and services.
{% endcollapsible %}

{% collapsible Monorepo %} 
- Monorepo or Monorepository allows multiple projects to be stored in one repo. Via the use of version control, one can manage different projects(services), that are related and logically independent, together.

- Amplication provides both monorepo and polyrepo models with built-in version control to make project-level commits and PR pulls for each service. Enables better testing and debugging of services before merging.
{% endcollapsible %}

{% collapsible Message Broker %}
- A software that allows logically different but related services to mediate information exchange via  Publish and Subscriber model or Topic.

- In ampliaction using a plugin system and project hierarchy connect services are generated with Kafka message broker as a plugin.
{% endcollapsible %}

{% collapsible Microservices %} 
- Microservices is an architecture where a project with a large and single codebase can be broken into multiple and distinct services. Allowing different components to implement different tech stacks as suitable, easier to scale and fastens development of the project.
- Amplication generates microservices with the implementation of modularity in code, use of project hierarchy, plugin system, Monorepo model and much more. 
{% endcollapsible %}

{% collapsible Project Hierarchy %}
- To produce scalable and connected microservices the project hierarchical structure is implemented in amplication.
- The structure contains Projects, Resources and Services with the ability to install plugins -MySql, Message broker, PostgreSQL, and Passport's basic and JWT authentication- for each service in a project. - - - Enables the use of multiple use cases connected to one project.
{% endcollapsible %}

Technologies that are implemented in amplication that I found interesting and want to learn 📍: 

1. Prisma
2. GraphQL
3. PostgreSQL
4. Passport JWT
5. Swagger UI

## The Conclusion: 
> [Amplication](https://amplication.com/) is a cool tool that enhances your productivity with a low-code, automated and streamlined development process.
> It auto-generates production-ready human readable and editable services based on typescript and NodeJS.
> With the react Admin UI one can create and edit data models of their project without much hassle of spending time on repetitive coding and testing.

### Thank you😊: 
* To the amplication team and community manager @sauain (Saurav Jain) for your quick response in resolving queries. 
* For providing easy-to-follow and understandable documentation of amplication. Helped me a lot to learn about the tool and why certain technologies are used.

It is with great happiness I say that my open-source, journey has started on the right foot with amplication and it boosts me to learn and contribute more.
Looking forward to being a valuable community member and contributor 🍀.

**_Read more about [Amplication](https://amplication.com/) and Get started!_**

🏴 Next on agenda is to make a project using amplication