/amplication-engineering-task-pilipi-puu-puu

amplication-engineering-task-pilipi-puu-puu created by GitHub Classroom

Primary LanguageTypeScriptApache License 2.0Apache-2.0

Information

Amplication

amplication-logo

github linkedin twitter discord

Company information

Amplication is an open-source development tool. It helps you develop quality Node.js applications without spending time on repetitive coding tasks.

🏂 Haven't tried Amplication yet?

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.

Why participate in an Octernship with 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.

Octernship role description

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.

Important Note

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.

Recommended qualifications

Required Skills:

  • Experience with Git & GitHub
  • Experience in TypeScript

Bonus Skills:

  • Experience with NestJS
  • Experience with Abstract Syntax Trees

Eligibility

To participate, you must be:

  • A verified student on Global Campus

  • 18 years or older

  • Active contributor on GitHub (monthly)

Assignment

Adding a new Amplication Plugin

Task Overview

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:

  1. Follow our guide for Getting started with a local development environment
  2. 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

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

Task Expectations

  • 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

Task submission

Students are expected to use the GitHub Flow when working on their project.

  1. Creating a new branch
  2. Making changes on the new branch( the given repository is template for plugin, so you can use it)
  3. Creating a Pull Request to merge changes into main branch on or before the assignment deadline.
  4. Using GitHub Discussions to ask any relevant questions regarding the project

Resources

Amplication Docs

Amplication Main Repo - Don't forget to give us a 🌟 if you like the project 😊

Amplication Plugins Repo

Blog about creating Plugins for Amplication