All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- [CI] Bump
codecov/codecov-action
from 3 to 4 - [CI] Bump
laravel/pint
from 1.13.7 to 1.14.0 - Bump
cviebrock/eloquent-taggable
from 10.0.0 to 10.0.3 - Bump
ramsey/composer-install
from 2 to 3 - [CI] Bump
phpunit/phpunit
from 10.5.5 to 10.5.11 - [CI] Bump
laravel/sail
from 1.26.3 to 1.29.1 - Bump
coderflexx/laravel-presenter
from 1.3.1 to 2.0.0 - [CI] Set return type of base TestCase methods
- [CI] Adopt PHP attributes in test classes
- [CI] Define test classes as
final
- [CI] Bump
brianium/paratest
from 7.3.1 to 7.4.3 - [CI] Bump
larastan/larastan
from 2.7.0 to 2.9.5 - Bump
laravel/socialite
from 5.11.0 to 5.12.1 - [CI] Bump
aglipanci/laravel-pint-action
from 2.3.1 to 2.4 - [CI] Bump
mockery/mockery
from 1.6.7 to 1.6.11 - [CI] Bump
fakerphp/faker
from 1.23.0 to 1.23.1 - [CI] Bump
doctrine/dbal
from 3.7.2 to 3.8.4 - Bump
spatie/image-optimizer
from 1.7.2 to 1.7.4
- Update sail to use PHP 8.2
- Bump
aglipanci/laravel-pint-action
to version 2.3.1 - Bump
laravel/framework
to version 10.39.0 - Bump
spatie/laravel-medialibrary
to version 11.0.3 - Bump
phpunit/phpunit
to version 10.5.5 - Bump
yajra/laravel-datatables-oracle
to version 10.11.3 - Bump
spatie/laravel-ignition
to version 2.4.1
- Important: The required minimum version of PHP is v8.2.
- Bump
bensampo/laravel-enum
to version 6.7.0 - Bump
doctrine/dbal
to version 3.7.2 - Bump
laravel/framework
to version 10.37.1 - Bump
laravel/socialite
to version 5.11.0 - Bump
socialiteproviders/okta
to version 4.4.0 - Bump
spatie/laravel-medialibrary
to version 10.15.0 - Bump
yajra/laravel-datatables-oracle
to version 10.11.2
- Change the public URL of Questions using unique ids
- New actuators to assign badges: on profile updated and on avatar uploaded
- Bump
aglipanci/laravel-pint-action
from 2.2.0 to 2.3.0 - Bump
spatie/laravel-ignition
from 2.1.2 to 2.2.0 - Bump
laravel/socialite
from 5.6.1 to 5.6.3 - Bump
laravel/framework
from 10.11.0 to 10.14.1 - Bump
spatie/laravel-medialibrary
from 10.7.16 to 10.10.1 - Bump
yajra/laravel-datatables-oracle
from 10.4.0 to 10.7.0 - Bump
laravel/breeze
from 1.21.0 to 1.21.2 - Bump
predis/predis
from 2.1.2 to 2.2.0 - Bump
doctrine/dbal
from 3.6.2 to 3.6.5 - Bump
bensampo/laravel-enum
from 6.3.2 to 6.6.0 - [CI] Bump
actions/checkout
from 3 to 4
- Add a new event to be used on Social Login
- Bump
aglipanci/laravel-pint-action
from 2.1.0 to 2.2.0 (#413) - Bump
laravel/framework
from 10.1.5 to 10.5.1 (#414) - Bump
spatie/laravel-medialibrary
from 10.7.11 to 10.7.16 (#415) - Bump
laravel/sail
from 1.21.0 to 1.21.3 (#416) - Bump
brianium/paratest
from 7.0.6 to 7.1.2 (#417) - Bump
phpunit/phpunit
from 10.0.12 to 10.0.19 (#418) - Refactor UsernameGeneratorService to reduce # of queries
- Replace deprecated ImplicitRule rule by ValidationRule in Laravel 10
- Simplify methods pointsToNextLevel() and nextLevelCompletion() in User model
- [CI] Replace deprecated create release action
- [CI] Upgrade mysql to 8.0 on CI/CD.
- [CI] Replace DatabaseTransactions by RefreshDatabase trait
- Fix broken link in CONTRIBUTING guide.
- Fix missing UserPresenter methods
- Fix missing BadgePresenter methods
- Fix missing LevelPresenter methods
- Fix missing QuestionPresenter methods
- Fix broken image on locked badges
- Fix incorrect database when testing
- Fix required reason field when rewarding points
- Remove unused methods findBy*
- Remove duplicated methods in User model
- Remove the sum of points when using points()
- Remove the
experience
in theusers
table in favor of a calculated attribute
NOTE: This release has non-backwards compatible changes. It may include some changes in the database tables.
- Optimizing user's profile, badge and level image size thanks to the spatie/medialibrary.
- Important: The required minimum version of PHP is v8.1.
- Important: This application has been upgraded to Laravel 10.x.
- Important: Database schema has been modified in a non-backwards compatible way.
- The
password_resets
table renamed topassword_resets_tokens
. - Removed
avatar
column inuser_profiles
table. Usingspatie/medialibrary
package instead. - Removed
image_url
column inlevels
table. Usingspatie/medialibrary
package instead. - Removed
image_url
column inbadges
table. Usingspatie/medialibrary
package instead.
- The
- Test running against a real database instead of memory (SQLite).
- Use of
coderflexx/laravel-presenter
as Presenter. - Use of
spatie/medialibrary
instead ofqcod/imageup
as Image Manager.
- Bug when creation User's response with invalid score.
- Some flaky tests.
- Unused
fuitcake/cors
dependency.
- Config flag to set the Laravel app time zone.
- Publication dates in the Question's table.
- New panel showing scheduled questions in the Admin dashboard.
- The title and other SEO fields should be driven by the configuration instead of language files. (#364)
- Add notifications when a badge is unlocked enhancement. (#359)
- Shuffle pending questions before listing them. (#354)
- Reduce the number of questions in the homepage to 5.
- Small changes related the look&feel of the application.
- Reduce number of queries in order to increase performance. (#369)
- Responsiveness improvements. (#361)
- Refactor to always use lowercase tags.
- Use Summernote as WYSIWYG editor
- Scheduled questions are not published on time bug. (#348)
- Admin dashboard look&feel on mobile devices.
- Remove unused code in app.js.
- Remove unused action resources.
- Hide Home link for guests.
- New endpoint (
/leaderbodar
) to get the Leader Board. It's accessible for guests. (#324) - Documentation about how to customize application views. See HOWTO file.
NOTE: The way that a Badge is triggered after a Question is answered has changed. Currently, Questions will trigger the completion of the Badge that contains, at least, on matching tag.
- Dispatched event
UserProfileUpdated
when the user's profile has been modified. - Add password validation: min. 8 characters, including mixed cased letters, numbers and symbols.
- Forgot password capability to allow users to recover their accounts..(#284)
- Implement user's registration, in order to allow users to register themselves.
- User's notifications after user creation/registration.
- Badges can be tagged in order to filter which Questions will trigger the completion. (#309)
- Remove sensible information (like gender, url, phone...) from the user's profile. (#256)
- Fix HTTP method for the user's profile update to
PUT
. - Update dependencies. (#262, #263, #264, #265, #266)
- Protect the whole application to ensure users has verified their email address.
- Protect user's profile edit through password confirmation.
- The User, Level, Badge and Question screens has been refactored to make it more user-friendly.
- Improved test coverage.
- Error showing Badges with more than one actuator.
- Issue when uploading badge images. (#257)
- Admins can't create or modify user's password in favor of Forgot password capability. (#285)
- Question's actions has been removed in favor of the use of Tagging. (#309)
NOTE: This release has non-backwards compatible changes.
- Improved form validation to make user's input safer. Test has been increased to ensure proper validation.
- Added a
Default
level outside the database. It could be overridden by creating a new level withrequired_points = 0
- Important: This application has been upgraded to Laravel 9.x. A lot of refactors has been done in order to adopt Laravel 9.x best practices.
- Important: Database schema has been modified in a non-backwards compatible way.
- Broken image urls for levels.
- OR -
statement in the login form should not appear when social login is not enabled.
- Application CI/CD has been migrated from Travis to GitHub actions.
- Update dependencies
- Bump
bensampo/laravel-enum
tov3.4.2
. - Bump
cviebrock/eloquent-sluggable
tov8.0.5
. - Bump
cviebrock/eloquent-taggable
tov8.0.2
. - Bump
doctrine/dbal
tov3.1.3
. - Bump
fruitcake/laravel-cors
tov2.0.4
. - Bump
fakerphp/faker
tov1.16.0
. - Bump
laravel/framework
tov8.63
. - Bump
laravel/socialite
tov5.2.2
. - Bump
laravel/tinker
tov2.5.1
. - Bump
laravel/ui
tov3.3.0
. - Bump
qcod/laravel-imageup
tov1.1.0
. - Bump
yajra/laravel-datatables-oracle
tov9.18.1
.
- Bump
- Update dev dependencies
- Bump
facade/ignition
tov2.14.0
. - Bump
mockery/mockery
tov1.4.4
. - Bump
nunomaduro/collision
tov5.10.0
. - Bump
phpunit/phpunit
tov9.5.10
.
- Bump
- PHP v7.4 support. Only PHP v8.0 will be supported since that version.
- Support to store sessions on the database (#204)
- Adds gamify:publish command to publish scheduled questions (#203)
- Show current version in the admin dashboard (#191)
- Last admin can change its type member (#194)
- PHP 8 support (#200)
- Error adding actions to questions. (#144)
- Rewards link is broken on Admin Sidebar. (#193)
- Missing translation: admin/question/model.published_at. (#192)
- Users can't change their password. (#135)
- Add a missing step to install dependencies on docker container.
Note: This application has been updated to use Laravel 8.x. It's backwards compatibility, so the database does not need to be updated.
- Parallel testing to reduce testing time when using
composer test
andcomposer test-coverage
.
- Important: This application has been upgraded to Laravel 8.x. A lot of refactors has been done in order to adopt Laravel 8.x best practices.
- Docker build process to set UID on docker-compose build.
- Bug when creating a question without choices. (#177)
- Remove Symfony Insight integration.
- Possibility to obtain/assign badges based on events (question has been answered, user is logged in...) (#161)
- Possibility to schedule question publication. (#152)
- Presenter to
Question
model. Removes several partial views.
- View on question edit form to make it simpler.
- Use
SocialProviders/okta
from packagist instead of GitHub. - Upgrade requirements to PHP 7.4.
- Add docker-php-extension-installer to install PHP extensions in docker.
- Dependencies has been updated.
- Badge images were not working on 'local' storage. (#162)
- Choices were not shown on validation errors. Dynamic Form fields is using repeatable-fields.
- QuestionChoice's
correct
model attribute. UseisCorrect()
and scopecorrect()
to get the same functionality than before.
- QuestionChoice's
correct
field has been removed from the model. This field was not used in favor ofscore
field. The removal is backward compatible and you can still usecorrect
attribute, that it's deprecated.
- Small refactors to add more testability.
- Added more tests.
- Two new widgets on admin dashboard: Latest published questions & latest registered users.
- Add user status to the profile information.
- User's metrics on 'Play' section. (#132)
- Profile look and feel.
- Question forms are now responsible.
- Update dependencies.
- Add link to each question. Make hidden questions linkable. (#120)
- Document properly 'Question name'. (#124)
- Hidden questions where not labelled. (#122)
- Bug when user was accessing to a published question. (#121)
- Bug when creating a new user. (#117)
- Trusted proxies configuration through environment variables. See
config/trustedproxies.php
. composer build
to create distributable files of the application.
- Remove API default route closure. It was buggy on production.
- Horizontal scaling: session & cache on Redis and uploads on S3. (#103)
- Support to custom views under
resources/views/custom
. (#102) - AWS S3 support for image uploads.
- Image management to Badges, Levels & Avatars. (#92, #96, #99)
- Fix some typos and broken links.
- Fix Admin dashboard render errors. (#88)
- Fix deletion of the default level. (#33)
- Social login links. Since this version it's possible to sign in using a third party service such as Facebook, Twitter or Github. (#83)
UserProfile
validation on updates.- Wrong redirection after login.
- Defaults for
avatar
onUser
creation.
Note: This application has been updated to use Laravel 6.x. It's still backwards compatibility, but database needs to be updated too. Some tests have been added but coverage is still very low.
- Ensure that users select at least one answer before proceeding. (#79)
- Two composer commands:
test
andtest-coverage
.
- Important: This application has been upgraded to Laravel 6. A lot of refactors has been done in order to adopt Laravel 6.x best practices. (#66)
- Refactors to reduce the number of queries.
- Change the editor from TinyMCE to Bootstrap-wysihtml5. (#36)
- Reputation is handled by Events. Added
experience
attribute to the User model. (#72, #73) - Repository name has been changed to
gamify-laravel
, current URL is https://github.com/pacoorozco/gamify-laravel.
- Database migration / seed on fresh installation. (#77)
docker-compose build
was throwing an error, so docker was not working. (#61)
- Dusk tests. They were not working properly.
- Fix routing problem affecting answering questions (#45)
- Change the URL verb from
/user/
to/users/
, to make it coherent with the rest.
- Fix default credentials documentation (#44)
- Bump version documentation updated
- Add issue templates to make issue submitting easier.
- Fix sidebar toggle button
- Fix issue #39. Authorisation was broken.
This is a major update, so it has changes that breaks compatibility with previous versions.
IMPORTANT: Application has been migrated to Laravel 5.5.
- This
CHANGELOG
file to keep changes between versions. - Docker support to be able to run this application in containers. DO NOT USE THIS CONTAINERS IN PRODUCTION.
- Added NPM module to deal with AdminLTE theme dependency.
- Added Laravel Mix to build assets in this application.
- Added folder structure to begin application testing support.
- Added Scrutinizer code style checks and test coverage.
- Added StyleCI to automatically merge any style fixes into the application repository. This allows us to focus on the content of the contribution and not the code style.
- Added Laravel IDE Helper to allow auto-completion on IDE.
- Added Laravel Dusk for testing.
- CI has been migrated to Travis CI COM.
- Some fields has been renamed:
- Model: Badge,
amount
is nowrequired_repetitions
. - Model: Level,
amount
is nowrequired_points
. - Pivot tables:
Badge-Users
,amount
is nowrepetitions
.
- Model: Badge,
- Move DataTables to
public/vendor
. - Composer versions to be compliant with Laravel 5.5.
- Travis is using PHP 7.2 image to do the builds.
README
has been updated adding information about the project, authors and "how to run this application".- Move al CSS and JS to
public/vendor
, so now it's part of this code. - Update CSS and JS paths in
views
to use newpublic/vendor
folder. - Updated
LICENSE
to GNU GPL v3.0 or later.
- Removed Homestead support in favor of docker containers. If you still want to use it, please follow this instructions.
- Removed cached item that were present in
.gitignore
. - Removed
bower
as Javascript dependency manager.