Skip to main content

NodeJS React Datta Able

Open-source Full Stack seed project built in React and NodeJS on top of Datta Able Dashboard

Open-source full-stack seed project coded in React and NodeJS on top of a modern design from CodedThemes. The React / NodeJS codebase is already configured with an SQLite database, API, and JWT token-based authentication flow.

Django React Datta Able


Product features

The product expects a running API backend that exposes an interface for login/logout and register actions. By default, the guest users are redirected to the login page. Once the user is authenticated using an existing account or the new one, all private pages are accessible.


React Datta Able

  • Modern aesthetics UI design - Designed by CodedThemes
  • React, Redux, Redux-persist

Tests (compatibility matrix)

NodeJSNPMYARN
v14.0.0
v16.0.0
v18.0.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)

NodeJSNPMYARN
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

Resources

Django React Datta PRO