Skip to content

appcypher/events-manager-io

Repository files navigation

EventsManagerIO

hound Build Status Coverage Status Maintainability codecov Swagger API Maintained License

Eventsmanager Screenshot

A simple site for managing event-centers and scheduling events.

See EventsManagerIO running here.

Made With

Client

* Bootstrap4 for UI styling
* React for managing UI states
* Redux for flux-like app development
* SASS for custom styling
* Webpack & Uglifyjs for bundling and load-time optimization

Server

* Nodejs for server-side logic
* Express for api routes implementation
* Json Web Tokens for session authentication
* Postgresql & Sequelize for database management
* Heroku for hosting services

Continuous Integration

* Travis CI & Codeclimate for test automation
* Coveralls for test coverage report
* Hounds CI for linting report

Test-Driven Development

* Mocha & Chai for api route testing
* Jest & Enzyme for UI testing
* Nightwatch & Selenium for end-to-end testing

Installation.

  • Install Nodejs and Postgres SQL
  • Clone this repo git clone https://github.com/appcypher/event-manager-io.git
  • Run npm install to install the required dependencies
  • Run npm test to fireup the tests
  • Navigate to http://localhost:3000/

Available Task Runners

Production

* start → required for starting the server on Heroku; transpiles project and runs it from output folder

Development

* server →  transpiles the project on the fly and runs the server
* server:watch → watches for file changes, transpiles them and runs the server
* webpack:watch → watches and bundles react project on the fly
* build:client:dev → sets NODE_ENV to development and builds react project using client.dev.js config file
* build:client:prod → sets NODE_ENV to production and builds react project using client.prod.js config file
* build:client:dev:watch → sets NODE_ENV to development and watches and bundles react project
* build:client:prod:watch → sets NODE_ENV to production and watches and bundles react project
* lint → runs the linter on .js and .jsx files
* sass:watch → watches the scss folder and transpiles the scss files to css on the fly

Test

  • test → sets NODE_ENV to test runs all tests "npm run test:api & npm run test:react",
  • test:api → demigrates and remigrates test database; sets NODE_ENV to test; runs tests related to api endpoints; and creates a test report
  • test:e2e → sets NODE_ENV to test and runs end-to-end unit tests
  • test:client → sets NODE_ENV to test and runs react tests
  • test:api:migrate → sets NODE_ENV to test and migrates test database
  • test:api:demigrate → sets NODE_ENV to test and demigrates test database

Available APIs

  • API routes for users to create accounts and login to the application

    • POST : /api/v1/users (username, fullname, password, email)
    • POST : /api/v1/users/login (username, password)
  • An API route for logging out user

    • POST : /api/v1/users/logout
  • An API route that allow users to add new event

    • POST : /api/v1/events
  • An API route that allow users to modify an event

    • PUT : /api/v1/events/<eventId>
  • An API route that allow users to delete an event

    • DELETE : /api/v1/events/<eventId>
  • An API route that allow users to gets all available event centers

    • GET : /api/v1/centers
  • An API route that allow users to gets more details on a particualar event center

    • GET : /api/v1/centers/<centerId>
  • An API route that allow admin users to add new event centers

    • POST : /api/v1/centers
  • An API route that allow admin users to modify existing event centers

    • PUT : /api/v1/centers

Check here for full documentation.

License

Apache License 2.0

Screnshots

LANDING PAGE Eventsmanager Screenshot

LOGIN Eventsmanager Screenshot

PROFILE Eventsmanager Screenshot

DIALOG Eventsmanager Screenshot