diff --git a/documentation/blog/2024-2-26-openpanel-public-beta.md b/documentation/blog/2024-2-26-openpanel-public-beta.md new file mode 100644 index 00000000..809f5429 --- /dev/null +++ b/documentation/blog/2024-2-26-openpanel-public-beta.md @@ -0,0 +1,67 @@ +--- +title: OpenPanel BETA is out! +description: Public beta is released! +slug: openpanel-public-beta-released +authors: yildiray +tags: [OpenPanel, news, tutorial] +image: https://refine.ams3.cdn.digitaloceanspaces.com/website/static/img/placeholder.png +hide_table_of_contents: false +--- + +:::caution + +Something +::: + +Link to blog.. + + + +All the steps described are in this [repo](https://github.com/refinedev/refine/tree/master/examples/blog-job-posting). + +## Intro + +[NestJS](https://github.com/nestjs/nest) is a framework for building efficient, scalable Node.js server-side applications. With [nestjsx/crud](https://github.com/nestjsx/crud) we can add CRUD functions quickly and effortlessly on this framework. + +## NestJS Rest Api + +To start playing with NestJS you should have node (>= 10.13.0, except for v13) and [npm](https://nodejs.org) installed. + +**Create Project Folder** + +```bash +mkdir job-posting-app +cd job-posting-app +``` + +Setting up a new project is quite simple with the [Nest CLI](https://docs.nestjs.com/cli/overview). With npm installed, you can create a new Nest project with the following commands in your OS terminal: + +```bash +npm i -g @nestjs/cli +nest new api +``` + +[TypeORM](https://github.com/typeorm/typeorm) is definitely the most mature ORM available in the node.js world. Since it's written in TypeScript, it works pretty well with the Nest framework. I chose mysql as database. TypeORM supports many databases (MySQL, MariaDB, Postgres etc.) + +To start with this library we have to install all required dependencies: + +```bash +npm install --save @nestjs/typeorm @nestjs/config typeorm mysql2 +``` + +- Create an [.env.example](https://github.com/refinedev/refine-hackathon/tree/main/job-posting-app/blob/master/api/.env.example) file. Here we will save the database information. +- Create and configured a [docker-compose](https://github.com/refinedev/refine-hackathon/tree/main/job-posting-app/blob/master/api/docker-compose.yml) file for MySQL. +- Create a [ormconfig.ts](https://github.com/refinedev/refine-hackathon/tree/main/job-posting-app/blob/master/api/ormconfig.ts) file for migrations. +- Add the following scripts to the `package.json` file for migrations. + +```bash +"typeorm": "ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js", +"db:migration:generate": "npm run typeorm -- migration:generate", +"db:migration:run": "npm run typeorm -- migration:run", +"db:migration:revert": "npm run typeorm -- migration:revert", +"db:refresh": "npm run typeorm schema:drop && npm run db:migration:run" +``` + + +refine_job +