Skip to content

Latest commit

 

History

History
178 lines (118 loc) · 5.3 KB

README.md

File metadata and controls

178 lines (118 loc) · 5.3 KB

Build Status Coverage Status codecov Maintainability MIT licensed

EventManager

EventManager is a light-weight app that allows users to manage and book centers for their events.

API Documentation

Click here to view our detailed API documentation

Take a Peek

Technologies Used

  • NodeJS - A Javascript runtime built on chrome V8 engine that uses an event-driven non-blocking I/O model that makes it lightweight and efficient.
  • ExpressJs - A minimal and flexible Node.js web application framework that provides a robust set of features for web and mobile applications.
  • Sequelize - An ORM for Node.js that supports the dialects of PostgreSQL and features solid transaction support an relations.
  • Postgres - A powerful, open source object-relational database system.
  • React - A JavaScript library for building user interfaces by Facebook.
  • Redux - A predictable state container for JavaScript apps.

Features

  • Users can see a landing page.
  • Users can create accounts by signing
  • Registered users can login with username and password.
  • Registered users can add events to the application.
  • Registered users can edit their events in the application.
  • Registered users can delete their events in the application.
  • Registered users can view all centers in the application.
  • Registered users can view the details of a center and the events slated for that center
  • Users get email notification when their events is declined by the admin
  • Registered users with admin privileges can add a center
  • Registered users with admin privileges can edit a center
  • Registered users with admin privileges can delete a center

Installation

  1. Install node, version 7 or greater

  2. Install postgres

  3. Clone the repository

    git clone https://github.com/Felglitzzz/EventManager.git
    
  4. Navigate to the project directory

    cd ~/path/to/EventManager
    
  5. Install all dependencies

    npm install
    
  6. Configure Postgres

    configure your database settings for development and test in
    `./server/config/config.json` using .env.example file template
    
  7. Run database migrations

    $ sequelize db:migrate
    
  8. Seed the database

    $ sequelize db:seed:all
    
  9. Start the app

    npm start:dev:watch
    
  10. Run the application on browser

    http://localhost:1991/
    

Testing

  • Run both client and server tests together
    npm test

Server-side tests

  • Uses Chai and Chai-Http
  • Have a test database
    npm run server-test

Client-side tests

  • Uses Jest and Enzyme
    npm run client-test

End-to-End tests

  • Uses Nightwatch
    npm run e2e-tests

Limitations

  • Users can only access full application features when they sign up or logged in
  • Users can neither edit nor delete center
  • Password reset feature is currently not available on the app
  • Users cannot deactivate their accounts
  • Users will have to obtain a new token every 24 hours
  • Users cannot signup/sign-in with their social media accounts
  • Search features is currently unavailable on the app
  • Users cannot receive email notification when they sign-up
  • Users cannot receive email notifications ehrn they create events

Contributing

If you are interested in contributing to development of this project, follow the instructions below to contribute.

  • Fork the repository

  • Make your change

  • Commit your change to your forked repository

  • Provide a detailed commit description

  • Raise a pull request against the develop branch

  • Please see Event Manager (Eventeria) wiki for project conventions

FAQ

Who can contribute?

Anyone can! Just follow the contribution guidelines above

Is there a set standard for PRs to this repository?

Yes please check the project wiki for project conventions.

Can I clone this application for personal use?

Yes!. This application is licensed under MIT, and is open for
everybody

License

This project is licensed under the MIT License