A simple site for managing event-centers and scheduling events.
See EventsManagerIO running here.
* 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
* 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
* Travis CI & Codeclimate for test automation
* Coveralls for test coverage report
* Hounds CI for linting report
* Mocha & Chai for api route testing
* Jest & Enzyme for UI testing
* Nightwatch & Selenium for end-to-end testing
- 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/
* start → required for starting the server on Heroku; transpiles project and runs it from output folder
* 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 → 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
- You need to download JDK, Selenium Server 3.9.1 and Chrome driver 2.40 for your system
- The Selenium and Chrome driver executables need to be copied into the
bin/
folder
- 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
-
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)
- POST :
-
An API route for logging out user
- POST :
/api/v1/users/logout
- POST :
-
An API route that allow users to add new event
- POST :
/api/v1/events
- POST :
-
An API route that allow users to modify an event
- PUT :
/api/v1/events/<eventId>
- PUT :
-
An API route that allow users to delete an event
- DELETE :
/api/v1/events/<eventId>
- DELETE :
-
An API route that allow users to gets all available event centers
- GET :
/api/v1/centers
- GET :
-
An API route that allow users to gets more details on a particualar event center
- GET :
/api/v1/centers/<centerId>
- GET :
-
An API route that allow admin users to add new event centers
- POST :
/api/v1/centers
- POST :
-
An API route that allow admin users to modify existing event centers
- PUT :
/api/v1/centers
- PUT :
Check here for full documentation.