/amplication

Auto-generating TypeScript, GraphQL, REST API, and Node.js, accelerating your full-stack development ๐Ÿš€

Primary LanguageTypeScriptOtherNOASSERTION

Node.js CI Discord Contributor Covenant License GitHub release (latest by date)

All Contributors

1  Amplication main

Amplication is an openโ€‘source development platform. It helps professional Node.js developers build quality Node.js applications without spending time on repetitive coding tasks.

Amplication auto-generates backend apps built with TypeScript and Node.js, and a client built with React.

Features

Amplication provides the following features:

  • Production-ready APIs
  • Data Model
  • Role Based Access Control (RBAC)
  • Microservices Support
  • Continuous GitHub Sync
  • TypeScript and Node.js Source Code
  • Plugin System
  • Monorepo or Polyrepo
  • Custom Code
  • Admin UI
  • Amplication Console & CLI

Getting Started

You can get started with Amplication immediately with the hosted service at app.amplication.com

Alternatively you can set up a local development environment with the instructions below

See the Amplication Website or Amplication Docs for more details.

Tutorials

Development Environment (Local)

System Requirements

๐Ÿ’ก Before you begin, make sure you have the following installed:

Getting Started With Local Development

Amplication is using a monorepo (powered by Nx Workspaces) with multiple apps and libraries.

Follow these simple instructions to set up a local development environment.

  1. Clone the repository and install dependencies:
git clone https://github.com/amplication/amplication.git
cd amplication
npm install
  1. Run the setup script, which takes care of installing dependencies, building packages and ensuring your workspace is dev-ready.
npm run setup:dev
  1. Spin up all required infrastructure (Postgres, Kafka, etc.) using Docker Compose:
# To be able to view logs
npm run docker:dev

# Or, if you prefer to run it at the background
npm run docker:dev -- -d
  1. Apply database migrations:
npm run db:migrate:deploy
  1. To start developing, run one or more of the serve:[app] scripts from package.json The available scripts are:

    npm run serve:server : runs Amplication server

    npm run serve:client: runs Amplication client

    npm run serve:dsg: runs the Build Manager and the local version of Data Service Generator

    npm run serve:git: runs the Git Pull Request service needed to push code to Git providers

    npm run serve:storage: runs the Storage service needed to view the generated code in the client (code view)

    npm run serve:plugins: runs the plugin catalog API

    โ„น๏ธ Please note that in order to be able to run the app's client properly, you need to serve both the server and client plus any additional component for specific functionalities:

That's it, you are good to go! Happy hacking! ๐Ÿ‘พ

You can always find more information in each app/library's respective README.md file.

Support

Ask your questions and participate in discussions regarding Amplication-related and web-dev topics at the Amplication Discord server.

Create a Bug Report

If you see an error message or run into an issue, please create bug report. This effort is valued and helps all Amplication users.

Submit a Feature Request

If you have an idea, or you're missing a capability that would make development easier and more robust, please Submit feature request.

If a similar feature request already exists, don't forget to leave a "+1". If you add some more information such as your thoughts and vision about the feature, your comments will be embraced warmly :)

Contributing

Amplication is an open-source project. We are committed to a fully transparent development process and highly appreciate any contributions. Whether you are helping us fix bugs, proposing new features, improving our documentation or spreading the word - we would love to have you as a part of the Amplication community.

Useful Links

Please refer to our Contribution Guidelines and Code of Conduct.

Contributors โœจ

Thanks goes to these wonderful people (๐Ÿค—):

Yuval Hazaz
Yuval Hazaz

๐Ÿ’ป
Roy Belkind
Roy Belkind

โš ๏ธ ๐Ÿ› ๐Ÿ’ป
Gal Cegla
Gal Cegla

โš ๏ธ ๐Ÿ› ๐Ÿ’ป
Alon Ram
Alon Ram

๐Ÿ’ป โš ๏ธ ๐Ÿ› ๐Ÿ–‹
meeroslava
meeroslava

๐Ÿ’ป โš ๏ธ ๐Ÿ› ๐Ÿ–‹
danna
danna

๐Ÿ“–
Almog Langleben
Almog Langleben

๐Ÿ’ป
tupe12334
tupe12334

๐Ÿ’ป ๐Ÿ›
Gabriel Moncea
Gabriel Moncea

๐Ÿ’ป
m3llo96
m3llo96

๐Ÿ“–
Petar Vujoviฤ‡
Petar Vujoviฤ‡

๐Ÿ’ป ๐Ÿ›
yam-golombek
yam-golombek

๐Ÿ“–
Iddan Aaronsohn
Iddan Aaronsohn

๐Ÿ’ป ๐Ÿ› ๐Ÿ–‹
Tim Durward
Tim Durward

๐Ÿ’ป ๐Ÿš‡ ๐Ÿ“–
yonantan
yonantan

๐Ÿ’ป
hermanramaniuk
hermanramaniuk

๐Ÿ’ป โš ๏ธ
George Cameron
George Cameron

๐Ÿ“–
Leeyaacov
Leeyaacov

๐Ÿ“– ๐ŸŽจ ๐Ÿ–‹
Mikayel Ohanjanyan
Mikayel Ohanjanyan

๐Ÿ’ป
Lalit C.
Lalit C.

๐Ÿ’ป
dabelh
dabelh

โš ๏ธ
liyachun
liyachun

๐Ÿ’ป
isabr85
isabr85

๐Ÿ“–
Krzysztof Kapusta
Krzysztof Kapusta

๐Ÿ’ป
Eric Hodges
Eric Hodges

๐Ÿ“–
0xflotus
0xflotus

๐Ÿ“–
MatanForU
MatanForU

๐ŸŽจ
Richard Weaver
Richard Weaver

๐Ÿค”
NullF0rest
NullF0rest

๐Ÿค”
sandbox-apps
sandbox-apps

๐Ÿค”
Victor Mota
Victor Mota

๐Ÿ’ก ๐Ÿค”
Kelello
Kelello

๐Ÿ’ก
MatthiasWanner
MatthiasWanner

๐Ÿค”
regicsolutions
regicsolutions

๐Ÿค”
Sten Feldman
Sten Feldman

๐Ÿค”
Thuc Pham
Thuc Pham

๐Ÿ’ก
Cody Lacey
Cody Lacey

๐Ÿ’ป
Matan Shidlov
Matan Shidlov

๐Ÿ’ป ๐Ÿ–‹
michizhou
michizhou

๐Ÿ’ป
Guillaume Traub
Guillaume Traub

๐Ÿ’ป
Asian Cat
Asian Cat

๐Ÿ“
Noy Agasi
Noy Agasi

๐Ÿ’ป ๐Ÿ›
Rutam Prita Mishra
Rutam Prita Mishra

๐Ÿ“–
Alex Bass
Alex Bass

๐ŸŽจ ๐Ÿ›
Mike NuรŸbaumer
Mike NuรŸbaumer

๐Ÿค” ๐Ÿ›
Amit Barletz
Amit Barletz

๐Ÿ’ป ๐Ÿ“–
Moshe Forman
Moshe Forman

๐Ÿ“–
Mohammed Agboolaยฎ๏ธ
Mohammed Agboolaยฎ๏ธ

๐Ÿ’ป ๐Ÿ›
morhag90
morhag90

๐Ÿ’ป
Kwinten Li
Kwinten Li

๐Ÿ’ป
EdroViegas
EdroViegas

๐Ÿ›
Hassan Miiro
Hassan Miiro

๐Ÿค”
Michael Solati
Michael Solati

๐Ÿ’ป
Mohamed Muhsin
Mohamed Muhsin

๐Ÿ’ป
0xsapphir3
0xsapphir3

๐Ÿ›
Nicolas Frati
Nicolas Frati

๐Ÿค”
Utsav Paul
Utsav Paul

๐Ÿšง
Santosh Bhandari
Santosh Bhandari

๐Ÿ’ป
Vincenzo Domina
Vincenzo Domina

๐Ÿ’ป
Daniele Iasella
Daniele Iasella

๐Ÿ’ป ๐Ÿ› ๐Ÿ“– ๐Ÿš‡

This project follows the all-contributors specification. Contributions of any kind welcome!