melusi-k / ac_finance

React Material Kit - API Server Nodejs | AppSeed

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

React Material Kit full-stack

Full-Stack Seed project generated by React App Generator top of Material Kit design. The backend logic is provided by a simple, easy-to-extend API Server that manages the Authentication flow (login, registration, logout) using JSON Web Tokens (JWT).


React Material Kit - Open-Source Fullstack starter crafted by Creative-Tim and AppSeed.


✨ React Material Kit

  • Design crafted by Creative-Tim
  • Innovative Material Kit Design
  • Full-stack ready
  • UI Kit: 750+ components, 4 Sample Pages

Tests (compatibility matrix)

NodeJS NPM YARN
v14.0.0 βœ… ❌
v15.0.0 βœ… ❌
v16.15.0 βœ… βœ…

✨ NodeJS API Features

  • Stack: NodeJS / Express / SQLite
  • TypeScript, Joy for validation
  • DB Layer: TypeORM, SQLite persistence
  • Auth: Passport / passport-jwt strategy
  • API Definition - the unified API structure implemented by this server

Tests (compatibility matrix)

NodeJS NPM YARN
v18.0.0 ❌ βœ…
v17.0.0 ❌ βœ…
v16.13.0 ❌ βœ…
v16.0.0 ❌ ❌

✨ How to use it

Being a full-stack product, the backend and the frontend should be compiled and started separately. Before starting to compile the product, make sure you have the following tools installed in the environment:

  • NodeJS - version 14.x or higher
  • GIT - used to clone tjhe sources from Github
  • Python3 - used in many tools

πŸ‘‰ Start the Frontend

Step 1 - Once the project is downloaded, change the directory to react-ui.

$ cd react-ui

Step 2 - Install dependencies via NPM or yarn

$ npm i
// OR
$ yarn

Step 3 - Start in development mode

$ npm run start 
// OR
$ yarn start

At this point, the app is available in the browser localhost:3000 (the default address).


πŸ‘‰ Start the Backend Server

Step 1 - Change the directory to api-server-nodejs

$ cd api-server-nodejs

Step 2 - Install dependencies via NPM or yarn

$ npm i
// OR
$ yarn

Step 3 - Run the SQLite migration via TypeORM

$ npm run typeorm migration:run
// OR 
$ yarn typeorm migration:run

Step 4 - Start the API server (development mode)

$ npm run dev
// OR
$ yarn dev

The API server will start using the PORT specified in .env file (default 5000).


πŸ‘‰ Codebase Structure

< ROOT / src >
     | 
     |-- config/                              
     |    |-- config.ts             # Configuration       
     |    |-- passport.ts           # Define Passport Strategy             
     | 
     |-- migration/
     |    |-- some_migration.ts     # database migrations
     |
     |-- models/                              
     |    |-- activeSession.ts      # Sessions Model (Typeorm)              
     |    |-- user.ts               # User Model (Typeorm) 
     | 
     |-- routes/                              
     |    |-- users.ts              # Define Users API Routes
     | 
     | 
     |-- index.js                   # API Entry Point
     |-- .env                       # Specify the ENV variables
     |                        
     |-- ************************************************************************

πŸ‘‰ SQLite Path

The SQLite Path is set in .env, as SQLITE_PATH


πŸ‘‰ Database migration

Generate migration:

$ yarn typeorm migration:generate -n your_migration_name

run migration:

$ yarn typeorm migration:run


For more components, pages and priority on support, feel free to take a look at this amazing starter:

Material Kit React PRO is built with over 100 frontend individual elements, like buttons, inputs, navbars, alerts or cards, giving you the freedom of choosing and combining. The product comes with a simple JWT authentication flow: login/register/logout.

  • πŸ‘‰ React Material Kit PRO - Product Page
    • βœ… Enhanced UI - more pages and components
    • βœ… Priority on support

React Material Kit PRO - Premium Fullstack starter crafted by Creative-Tim and AppSeed.



React Material Kit - Full-Stack Seed project generated by App Generator.

About

React Material Kit - API Server Nodejs | AppSeed

License:Other


Languages

Language:TypeScript 63.8%Language:JavaScript 25.9%Language:HTML 9.4%Language:Shell 0.9%