IT is always about communities. Such was my thinking in the far year of 2011 when I created the first Moldovan IT community on Facebook — DeveloperMD. After a half-year of online activity we decided that we have to get together offline. Said and done: in September 2011 we had the first DeveloperMD Community Offline with approximately 40 participants. One week later me and my partner created a software development company — FusionWorks — this was inspired by the outcome of the first event. Already in November, now having FusionWorks as the main partner, we’ve organized the 2nd edition. At some point, due to the growing size of the event, we realized that it should be done once a year and eventually we had 11 editions so far. In 2018 the big change took place — event was extended to two days, the name was changed to Moldova Developer Conference and another, much bigger venue, was selected. This led to the increase of number of participants — 350 — which makes MDC the biggest IT conference for developers in the country. This year #MDC19 is planned for November 2–3 and we expect around 450 awesome people to attend. So let me tell you more about what is going to happen in 2019.
Why #MDC19 is cool
Well, let’s count:
It’s the biggest IT event for developers in the country.
It has thoroughly selected content (speakers pass through a selection process and are trained by professionals).
Each conference day is followed by amazing afterparty or wine tasting event (yep, Moldova is about wine and IT — not sure which one comes first).
Sometimes people ask: “Why are you doing this?”. The answer simple — we do it because we can. And because we love it! Having hundreds of bright eyes before you is the pleasure that can’t be denied. So we started in 2011 and are not going to stop.
Ok, let’s now learn more about the host country — Moldova — this small IT valley.
Top 3 facts about Moldova
Moldova is not Maldives. Often mail delivery companies send parcels to the wrong country. Moldova has around 3.5 millions inhabitants and used to be USSR country until 1991. Official language is Romanian/Moldovan (the same language but is called differently in official documents). Also people understand and speak Russian here. Most of IT geeks speak English fluently, taxi drivers — not.
Moldova has a very attractive IT sector — companies pay unique 7% tax that transforms BRUT into NET. IT sector capacity is about 10 000 specialists. Most of the companies are outsourcing ones and offer very attractive rates.
The highest peak in Moldova is 428 meters high and the author of this article has never climbed that hill. Despite the fact that he has been to Everest BC, Kilimanjaro, Elbrus, Kazbek, Mitikas/Olimp and many others.
See you in the most promising IT country in Europe!
In this series of articles, I will describe how to quickly bootstrap an API-based administration panel for your project using NestJS and React Admin.
In order to proceed further (in casу you are not reading just for fun), you may need to have NodeJS 10+, npm, yarn and MySQL installed on your computer. Also, you should have some basic knowledge of TypeScript and React.
Our project will consist of 2 part:
REST API, written in TypeScript
Admin panel, written in React
For demo purposes, we will create a simple application for managing guests list. This will include creating guests, showing list and updating guests info.
So let’s start.
Creating API
For creating API we will use NestJS framework. I enjoy NestJS because it is TypeScript based and thus allows producing better readable, better structured and less error prone backend code.
We will use NestJS CLI tool to initialize our backend:
npm i -g @nestjs/cli nest new api cd api
Now when the project skeleton is ready we will add other dependencies we need.
We will use TypeORM (again TypeScript) for working with MySQL:
yarn add @nestjs/typeorm typeorm mysql class-validator class-transformer
NestJS CRUD library to simplify our endpoints creation:
yarn add @nestjsx/crud
And NestJS Config for managing our application configuration:
yarn add nestjs-config
Once done with dependencies lets generate the skeleton of our Guests API endpoint
Not so fast 🙂 Later on React Admin will require CORS to be enabled on API side. So we need to modify src/main.ts. And by the way lets make React’s life easier and free 3000 port!
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule, { cors: true });
await app.listen(3001);
}
bootstrap();
Now it is really ready!
yarn start
and continue to creating out administration panel UI.
Creating Admin UI
As mentioned before for this purpose we will use React Admin — a React based component library for creating admin-like interfaces.
Let’s start with initializing a React applicationn
pm install -g create-react-app create-react-app admin-ui cd admin-ui
After this we are redy to initializing React Admin component and create guest editor. First, we update src/App.js with root Admin component and Resource component for guests:
Please note that we are using React Admin’s ListGuesser and ShowGuesser for list and show veiws. If needed they could be replaced with custom implementation same way as create and edit forms below.
So far everything looks great, but we have not yet touched such things as authentication, authorization, cases when database and API models should differ, etc. I will cover them in the next articles and we’ll if this stack survives nicely. So stay tuned to the FusionWorks: