To setup project
Assuming your system is set up to use Ruby on Rails and you have npm and Bower already installed globally, and that you are in the directory you cloned this into.
If developing, you may want to run
grunt watchas well to enable automatic compilation and reloads.
Install dependencies by
Set up your database by
Run server with
Go to your web browser and open "http://localhost:3000"
All in one go (completes all build scripts, starts the server, and opens index.html in the default browser):
./start.shfrom the root directory
The UI is built with twitter bootstrap, less and jquery
To run sample unit test
The source file for test is at test folder.
To run sample functional test
bundle exe rake cucumber
The functional test is written on Cucumber steps with Selenium driver and Capybara. You can see the tests at features folder
￼User should land on home page on entering the website
- If the user is not loged in, then the home page should contain branding elements with login form and sign up form. Users should be able to signup/login from this page with minimal informations.
- Whenever a user registers, e-mail id should be the username identifier and a password should be stored in the system.
- User should be able to login with the email id and password he registered with.
- Password should be encrypted before saving to database.
- If the user is already loged in, then home page should contain a list of all events that user can buy ticket for. The event list should have a thumbnail image of the event and title.
- Already completed events should not be listed.
When user clicks on the event thumbnail, all the event details should be shown like(Title, type of event, Venue, date, time, Tickets available, total tickets).
- If tickets are available for that event, user should be able to click on the book button in event details page. !
- By clicking book button user will be asked to select the number of tickets needed. If the number given is smaller or equal to the number of tickets available, then ticket should be successfully booked.
- User should have an option at the home page to see all the tickets booked by the user with event details ordered by event time.
- The website should be properly linked between pages to make sure user can navigate from one page to another.
- User should be given a settings page, which is accessible from home page. When user navigates to settings page, user should be able to upload his profile image.
- Once profile image is uploaded, it should be displayed on the home page with users details(email, name).
- User should be able to logout on any page, if already logged in. ￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼￼