Amplication is an open-source development tool. It helps you develop quality Node.js applications without spending time on repetitive coding tasks.
Here are some steps to learn and use the Amplication services.
- Amplication is an open‑source development tool. It helps you develop quality Node.js applications without spending time on repetitive coding tasks.
- Docs Amplication docs.
- Site The Amplication website.
- ra-data-graphql-amplication React-admin data provider to connect to a GraphQL generated by Amplication.
Amplication is changing the way backend services are built and delivered. We help you build backend services with the highest standards, consistency, and scalability across your organization. Our team is closely working with the Amplication developer community to make Amplication better. In this role, you will have the opportunity to work as a Software Engineer and obtain the skills to become a better developer.
We're looking for a Software Engineer Intern to join the Engineering team. This team is responsible for building and maintaining the Amplication platform and improve our new and existing product features.
In this role, you will participate in various Engineering tasks as part of our team. In particular, you will write Plugins to add functionality to the code generated by Amplication.
Octernship info | Timelines |
---|---|
Project Deadline | 26 June 2023 |
Project Duration | 3 weeks |
Octernship Duration | Min: 1 Month, can be extended upto 3 months based on performance |
Working on the project serves as your application and it is unpaid. The payment is when you are selected as an official octern with Amplication, joining as as an intern for at least one month and we can extend it to three months based on your performance.
Required Skills:
- Experience with Git & GitHub
- Experience in TypeScript
Bonus Skills:
- Experience with NestJS
- Experience with Abstract Syntax Trees
To participate, you must be:
-
A verified student on Global Campus
-
18 years or older
-
Active contributor on GitHub (monthly)
In this task, you will create a new Amplication Plugin that adds new functionality to the code generated by Amplication.
In order to get started you should complete the following steps:
- Follow our guide for Getting started with a local development environment
- Read the docs for plugin development including the Architecture and how to create your plugin
After you've completed the above, make sure you can generate a basic application with Amplication (you can use the template entities available in the service creation wizard to get started quickly). Make sure to generate both REST APIs and GraphQL APIs.
Now pick one of the generated entities and look at the files generated by Amplication in the base
folder. E.g. for the User
entity look at apps/my-service/src/user/base/
.
Observe that the Service (*.service.base.ts
file) implements a count
method, and that the GraphQL resolver (*.resolver.base.ts
file) exposes this count
method via GraphQL.
In contrast to the GraphQL resolver, observe that the REST API Controller (*.controller.base.ts
file) does not expose the count
method for the entity via REST.
Your task is to create an Amplication Plugin, that adds the count
functionality to the generated REST controllers, similar to how it gets exposed via the generated GraphQL resolvers.
You can use the following method to debug and test your Plugin locally during the development process.
Since we are open-source 💜 you can get some inspiration from our existing plugins repo
- Write the code yourself
- Give credit in a dedicated file (e.g.
sources.md
) to sources of code you used from the Internet (make sure you understand every aspect of your submitted code) - Add tests that proves it works as expected. Try to think of edge cases that require testing.
- Submitted code should include: the plugin you've created, and relevant tests
Students are expected to use the GitHub Flow when working on their project.
- Creating a new branch
- Making changes on the new branch( the given repository is template for plugin, so you can use it)
- Creating a Pull Request to merge changes into main branch on or before the assignment deadline.
- Using GitHub Discussions to ask any relevant questions regarding the project
Amplication Main Repo - Don't forget to give us a 🌟 if you like the project 😊