Giter VIP home page Giter VIP logo

contest-o-mat's Introduction

README

Contest-O-Mat

An simple contest / prize game application starter kit.

Features

  • Users System: You and your client (owner of the prizegame) can create unlimited users and each user can have separate permissions for each functionality (to view, create or edit users, roles, participants, entries, votes, winners and statistics). Each user can also register by themselves (if enabled). The system has also already integrated the reset password functionality for users.
  • Participants: Each visitor that participates in your prize game / sweepstakes.
  • Entries: If the participant can participate multiple times in the prize game / contest then the participant is entered only once and for each participation an "entry" is created (because it does not make sense to always create a new participant for each time the visitor participates).
  • Votes: In case you want the visitors to enable voting on the entries.
  • Winners: You can hand pick the winning participants and entries which will then be shown on a separate page.
  • Statistics: To have the complete overview of your application. You are able to see the participants, entries, votes and visits (if Piwik is enabled) by:
    • last 48 hours,
    • last 30 days,
    • browsers,
    • operating systems,
    • device types,
    • devices,
    • cities and
    • countries.
  • Settings: Most of the settings can be edited via the administration.

Build status

Build Status

Requirements & Tools & Helpers

Setup / Installation

  • Navigate yor your web directory: cd /var/www
  • Create a new project: composer create-project bobalazek/contest-o-mat --no-scripts
  • Configure database (and maybe other stuff if you want): app/configs/global.php or app/configs/global-local.php.dist (in case you will deploy it and need a different local configuration. Just rename the global-local.php.dist to global-local.php and set your own configuration)
  • After that, run the following commands:
    • bin/console orm:schema-tool:update --force (to install the database schema)
    • bower update (to install the front-end dependencies - you will need to install Bower first - if you haven't already)
    • bin/console application:database:hydrate-data (to hydrate some data, if you want)
  • You are done! Start developing!

Database

  • We use the Doctrine database
  • Navigate to your project directory: cd /var/www/my-app
  • Check the entities: bin/console orm:info (optional)
  • Update the schema: bin/console orm:schema-tool:update --force
  • Database updated!

Development

Important files / directory you may want / need to edit when developing your application:

  • Config: app/configs/global.php (just open the file and view it yourself. There are MANY settings you may want to tweak)
  • Middlewares: app/core/middlewares.php (you may want to take a deeper look into the "User UID" part - line 115. and below)
  • HTML Templates: app/templates/contents/application/
  • Javascripts: web/assets/javascripts/contest.js
  • Stylesheets: web/assets/stylesheets/contest.css
  • Participate Form Type: src/Application/Form/Type/Participate/DefaultType.php (the form, which shows up at the participation)
  • Application Controller: src/Application/Controller/ApplicationController.php (all the contest logic, handling and persistence goes here)
  • Application Controller Provider: src/Application/ControllerProvider/ApplicationControllerProvider.php (the contest routes are here)

Application name

You should replace the name for your actual application inside the following files:

  • README.md
  • bower.json
  • composer.json
  • phpunit.xml
  • app/configs/global.php

Administrator login

With the bin/console application:database:hydrate-data command, you will, per default hydrate 2 users (which you can change inside the app/fixtures/users.php file):

  • Admin User (with admin permissions)
  • Test User (with the default user permissions)

Commands

  • bin/console application:environment:prepare - Will create the global-local.php and development-local.php files (if they do not exist)
  • bin/console application:database:hydrate-data [-r|--remove-existing-data] - Will hydrate the tables with some basic data, like: 2 users and 6 roles (the --remove-existing-data flag will truncate all tables before re-hydrating them)
  • bin/console application:storage:prepare - Will prepare all the storage (var/) folders, like: cache, logs, sessions, etc.
  • bin/console application:translations:prepare - Prepares all the untranslated string into a separate (app/locales/{locale}_untranslated.yml) file. Accepts an locale argument (defaults to 'en_US' - usage: bin/console application:translations:prepare --locale de_DE or bin/console application:translations:prepare -l de_DE )

Other commands

Preview

Application - Index

Application - Index

Application - Participate

Application - Participate

Members Area - Users

Members Area - Users

Members Area - Entries

Members Area - Entries

Members Area - Participants

Members Area - Participants

Members Area - Participants - Metas Modal

Members Area - Participants

Members Area - Participants - Edit

Members Area - Participants - Edit

Members Area - Votes

Members Area - Votes

Members Area - Winners

Members Area - Winners

Members Area - Statistics

Members Area - Statistics

Members Area - Statistics (more)

Members Area - Statistics (more)

Members Area - Statistics (more)

Members Area - Statistics (more)

Members Area - Statistics - Visits

Members Area - Statistics - Visits

Members Area - Settings

Members Area - Settings

Contact

Contact

License

Contest-O-Mat is licensed under the MIT license.

contest-o-mat's People

Contributors

bobalazek avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.