Given you manage an events center, this app will help you accept applications to use your center/facilities for events, and will either decline events when the proposed day is already taken, or suggest an available day
1. Features
2. Technologies
2. Installation and Setup
3. Testing the application
4. Documentation
5. Limitations
6. How To Contribute
The application contains 3 roles by default
- SuperAdmin
- Admin
- Regular
All users can perform the following actions with the application
- Create events
- Retrieve events
- Retrieve an event
- Update own events
- Delete own events
- Retrieve centers
- Retrieve a single center
- View user profiles
- Update profile details
- Upload profile picture
- Recover lost password
Admin and SuperAdmin can perform the following actions
- Create centers
- Modify own Centers
- Approve event on own center
- Create/Update/Delete facilities on own center
Super Admin can perform the following actions
- Upgrade AccountType/Role of other existing users
- Retrieve list of all users
1. Bootstrap 4: For UI styling
2. React: For rapid front-end web developement
3. Redux: For state management
4. SASS: For custom styling
5. Webpack: For bundling and running mundane tasks in development of the Client app
1. Nodejs for server-side logic
2. Express for api routes implementation
3. Json Web Tokens for session authentication
4. Postgresql & Sequelize for database management
5. Heroku for hosting services
1. Travis CI & Codeclimate for test automation
2. Coveralls for test coverage report
3. Hounds CI for linting report
1. Mocha & Chai for api route testing
2. Jest & Enzyme for UI testing
3. Nightwatch & Selenium for end-to-end testing
1. Install Nodejs and Postgres SQL
2. Clone this repo "git clone https://github.com/nzediegwu1/EventManager.git"
3. Run "npm install" to install dependencies
4. Create a Postgresql database
5. Create a ".env" file and define env variables using the sample file ".env.sample" in the root directory of this project.
6. Run migrations "npm run db:migrations".
1. "npm start" → for starting the server on Heroku: transpiles, bundles and runs the full application
1. "npm run start:dev" → transpiles and runs the server on the fly, watches for file change and recompile
2. "npm run client" → bundles the react project on the fly, watches for file changes, rebundles and reloads HMR server
Go to http://localhost:8080 on your browser to view app
1. API test → "npm run test:api"
2. End-to-end test → Install latest JDK, Set superAdmin username and password using `SUPER_ADMIN` and `SUPER_ADMIN_PASS` respectively in your .env file, then run "npm run test:e2e"
3. Frontend test → "npm run test:react"
- The API was documented using swagger. To view, click here
1. User cannot book for an event online
2. User cannot pay for center booking online
2. An event cannot span more than one day, user has to create multiple events for multiple days
3. Cannot upload multiple images for a center/event
4. User cannot upvote/downvote events or submit rating for centers
To contribute to the project, follow the instructions below
- Fork the repo on GitHub
- Clone the project to your own machine
- Commit changes to your own branch
- Push your work back up to your fork
- Submit a Pull request so that I can review your changes
NOTE: Be sure to merge the latest from "upstream" before making a pull request!
- This project is licensed under the MIT License
- Copyright © 2018 Anaeze Nsoffor