Events Manager is a full stack application, that enables users administrate there own centers, An Event registration platform for all of your online and on-site event management needs and handles the entire event lifecycle from start to finish.
Visit our application Event-Manager to get started
STEP 1: Install node
version 6 or higher
STEP 2: Install posgresql
database
Step 3: Clone this repo and cd into it
$ git clone https://github.com/topseySuave/event-manager.git
$ cd event-manager
STEP 4: Install all dependencies
$ npm install
STEP 5: Set up postgres for the application
check ./config/config.json to add nesseccary database credential
I advise storing such credentials as environment variables for security purposes
STEP 6: Add a .env
file in root of project and setup the following:
SECRET_KEY=<anyWordsOfYourChoice>
DATABASE_URL=<elephantSqlOnlineDatabaseLink>
CLOUDINARY_URL=<yourCloudinaryUrl>
CLOUDINARY_UPLOAD_PRESET=<yourCloudinaryUploadPreset>
EMAIL=<yourGmailAccount>
PASSWORD=<yourGmailPassword>
STEP 7: Run migration and seed the database with nesseccary data
$ sequelize db:migrate && sequelize db:seed:all
STEP 8: Start the application
$ npm run start:dev
STEP 9: Navigate to application on your browser
localhost:8000
- User can an create account with email and password
- Users are then be authenticated with email and password
- Admin can create, modify or delete centers
- Users can create, modify or delete event bookings
- Admin can accept or reject such events
- Mail notifications are sent to users when
- Admin approves or rejects event
- Users can search for center by name or location, price, facilities and capacity
The app uses:
Mocha/Chai
andSuper-Test
for backend testing.Enzyme
andJest
for frontend testingNightWatch
for End-2-End testing
npm test
- to run test and display code coverage for back-endnpm run test:client
- to run test for front-endnpm run e2e
- to run end-to-end test
Click Here to view our API documentation
- Authorization tokens are only valid for 24 hours
- Only authenticated users can access key fuetures such as event booking
- User cannot deactivate their account
-
Node - A JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.
-
Express - A minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
-
Sequelize - Sequelize is a promise-based ORM for Node.js v4 and up. It supports the dialects PostgreSQL and features solid transaction support, relations, read replication and more
-
PosgreSQL - A powerful, open source object-relational database system.
-
React - A JavaScript library for building user interfaces
-
Redux - Redux is a predictable state container for JavaScript apps.
-
Material-ui - React components that implement Google's Material Design.
-
MaterializeCss - A modern responsive front-end framework based on Material Design
This project is licensed under MIT
When contributing to this repository, please reach out to me or other contributors via email, issue or any other means to discuss the changes you wish to make.
- Micah Gabriel Ogechukwu (TopseySuave)
-
Materialize Css
-
Material-ui
-
Reactjs
-
Reduxjs
-
Cloudinary
-
Expressjs
-
Nodejs
Yes it is, and contributing to the development of this application is by raising PRs.
Anyone! This application is open to all those who want to contribute to open-source
development and are willing to follow set standards for contributing.
Yes, there are set conventions for PRs to this repository and can be found in the
project wiki.
This project is a full stack Javascript application.
Yes! This application is licensed under MIT, and is open for whatever you may choose
to use it for.