Skip to content

Latest commit

 

History

History
executable file
·
86 lines (60 loc) · 2.22 KB

README.md

File metadata and controls

executable file
·
86 lines (60 loc) · 2.22 KB

famn

Famn is an Angular2 application framework with both client side and server side integrated. I have been exploring for such an Angular2 MEAN for a while but w/o an ideal solution, so I write it.

Famn stands for Feathers, Angular2, MongoDB, and Node.js

Famn borrowed much from angular2-webpack-starter, @angular/material, ng2-material

IMPORTANT This project has no commercial level of support and it's suggested to use in development for quick prototype. PR is welcome to make it go further.

Features

  • Angular 2 + typescript
  • Webpack for both client and server side
  • Feathers is to provide realtime service
  • All websocket based communications
  • MongoDB and mongoose model
  • Ngrx/store for state management
  • HMR in development
  • Material design
  • Docker based

Development

local

# prepare environment
npm i nodemon ts-node typescript@2.0

# or use yarn
yarn add nodemon ts-node typescript@2.0

# build client code
yarn run build:client:dev

# start server with webpack hmr
yarn run start:hmr

docker (recommended)

# docker way which is recommended
docker-compose -f ./docker/docker-compose.dev.yml up --build

# real time service, check the new message in message module after running below command
curl -H 'Content-Type: application/json' \
  --data-binary '{ "email": "yourname@yourdomain.com", "message": "Hello FAMN" }' \
  http://localhost:3030/messages/'

Go to http://localhost:3030 with default created user mo@po.da, password do

Deploy

docker-compose -f ./docker/docker-compose.prod.yml up --build -d

Other commands

build

# build client for dev
yarn run build:client:dev
# build client for prod
yarn run build:client:prod
# build client with AOT for prod
yarn run build:client:aot:prod
# build server for prod
yarn run build:server:prod

To do

  • ( ) CLI for project initialization
  • (*) user authorization
  • (*) robust material design data-table (ag-grid)
  • ( ) charts
  • ( ) unit test