UserFrosting is a secure, modern user management system written in PHP and built on top of the Slim Microframework, Twig templating engine, and Eloquent ORM.

Overview

UserFrosting 4.6

Latest Version PHP Version Software License Join the chat at https://chat.userfrosting.com/channel/support Backers on Open Collective Sponsors on Open Collective Donate

Branch Version Build Coverage Style
master
hotfix
develop  

https://www.userfrosting.com

If you simply want to show that you like this project, or want to remember it for later, you should star, not fork, this repository. Forking is only for when you are ready to create your own copy of the code to work on.

By Alex Weissman

Copyright (c) 2019, free to use in personal and commercial software as per the license.

UserFrosting is a secure, modern user management system written in PHP and built on top of the Slim Microframework, Twig templating engine, and Eloquent ORM.

Features

User login screen

User login script

User management page

PHP user management script

Permissions management page

UserFrosting permissions management

Demo

Installation

Please see our installation guide.

Troubleshooting

If you are having trouble installing UserFrosting, please join us in chat or try our forums.

If you are generally confused about the structure and layout of the code, or it doesn't look like the kind of PHP code that you're used to, please start from the beginning.

Mission Objectives

UserFrosting seeks to balance modern programming principles, like DRY and MVC, with a shallow learning curve for new developers. Our goals are to:

  • Create a fully-functioning user management script that can be set up in just a few minutes
  • Make it easy for users to quickly adapt the code for their needs
  • Introduce novice developers to best practices such as separation of concerns and DRY programming
  • Introduce novice developers to modern constructs such as front-end controllers, RESTful URLs, namespacing, and object-oriented modeling
  • Build on existing, widely used server- and client-side components
  • Clean, consistent, and well-documented code

Documentation

Learning UserFrosting

API documentation

Change log

Running tests

Run php bakery test from the root project directory. Any tests included in sprinkles/*/tests will be run.

Development Team

Alexander Weissman

Alex is the founder and co-owner of two companies, one that does math tutoring at Indiana University in Bloomington, IN and another company that does math tutoring at UMD in College Park, MD. He is a PhD student in the School of Informatics and Computing at Indiana University.

Louis Charette

Louis's a civil engineer in Montréal, Québec who also has a passion for coding. He is one of the main contributors for SimpsonsCity.com and likes to share his knowledge by helping others the same way he was helped when he first started coding.

Jordan Mele

Jordan's an Australian Software Engineer at Canva. His passion is creating simple yet intuitive software-based solutions for problems that would otherwise be tedious and/or difficult to solve, while keeping the user in control.

Sarah Baghdadi

Sarah is UserFrosting's UX specialist and frontend designer. In addition to her work on the UF application itself, she is responsible for the amazing design of https://www.userfrosting.com and https://learn.userfrosting.com.

Srinivas Nukala

Srinivas's a web applications architect, with a passion for open source technologies. He is experienced in building SaaS (software as a service) web applications and enjoys working on open source projects and contributing to the community. He has a Masters in Computer Science from Pune University, India.

Contributing

This project exists thanks to all the people who contribute. If you're interested in contributing to the UserFrosting codebase, please see our contributing guidelines as well as our style guidelines.

Thanks to our translators!

  • Louis Charette (@lcharette) - French
  • Karuhut Komol (@popiazaza) - Thai
  • Pietro Marangon (@Pe46dro) - Italian
  • Christian la Forgia (@optiroot) - Italian
  • Abdullah Seba (@abdullahseba) - Arabic
  • Bruno Silva (@brunomnsilva) - Portuguese
  • @BruceGui - Chinese
  • @kevinrombach - German
  • @rafa31gz - Spanish
  • @splitt3r - German
  • @X-Anonymous-Y - German
  • Dmitriy (@rendername) - Russian
  • Amin Akbari (@aminakbari) - Farsi
  • Dumblledore - Turkish
  • Lena Stergatou (@lenasterg) - Greek

Supporting UserFrosting

Backers

Backers help us continue to develop UserFrosting by pledging a regular monthly contribution of $5 or more. [Become a backer]

Sponsors

Support this project by becoming a sponsor. Sponsors have contributed a total of $500 or more to UserFrosting (either as an ongoing backer or one-time contributions). Your logo will show up here with a link to your website. [Become a sponsor]

USOR Games Next Generation Internet

Comments
  • butterflyknife installation

    butterflyknife installation

    Hi firstly I really like this project :-] I never used github so I hope this post is appropriate? There is some issues when installing butterfly knife, it runs through and adds the tables correctly once models/db-settings.php has been manually edited (should this be a step in the installation process itself?):

    1 - it tells me to add root user key, but I cant, I get the following error when manually accessing http://mysite.dom/install/create_root_user.php

    Warning: Cannot modify header information - headers already sent by (output started at /home/mysite/public_html/install/config.php:61) in /home/mysite/public_html/install/create_root_user.php on line 99

    but it does actually create the root user correctly in the database, so then next issue

    2 - root user is created but has primary-group-id set to 1 not 2 so is redirected to standard user login not admin dashboard, obviously easy to fix via phpmyadmin but just needs a small tweak in the install script I guess so set the correct user?

    3 - Upon completion the models/config.php line 73 is still hardcoded to:

    or define("SITE_ROOT", $url_prefix . "localhost/userfrosting/");
    

    should install process take care of this and adjust it?

    troubleshooting installation 
    opened by handsomechap 65
  • 06.05.2014 ButterflyKnife problems.

    06.05.2014 ButterflyKnife problems.

    Downloaded the latest version of butterflyknife, created a new database. edited the db-settings.php file, and ran /install.

    All tables created fine. Entered root account information, put in the token, pressed the button and I got two errors saying "The master account already exists!" on the Installation Complete screen. I checked the information in the database, everything looks fine.

    I deleted the installed folder, visited the website (i.e. foobar.com/) and the home screen comes up. It then redirects me to http://foobar.com/localhost/account/dashboard_admin.php. I removed the localhost/ out of the URL in the browser, pressed enter, and it still redirects me back to http://foobar.com/localhost/account/dashboard_admin.php

    Now when I visit foobar.com/ it still redirects me to http://foobar.com/localhost/account/dashboard_admin.php

    I looked around in the MySQL configuration table and saw website_url as localhost/ and i changed it to foobar.com/ Now it goes to http://foobar.com/foobar.com/account/dashboard_admin.php

    Changing the website_url information in the database to http://foobar.com did not fix it either. Still redirects to http://foobar.com/foobar.com/account/dashboard_admin.php

    confirmed bug 
    opened by desynergy 60
  • Error message on call function

    Error message on call function

    Whenever I login I get the following error message:

    Fatal error: Call to a member function bind_param() on a non-object in public_html/UserFrosting/models/funcs.php on line 476

    It also carries over on every page I try to access. It eventually goes away when my session times out.

    troubleshooting 
    opened by sheldonjs 41
  • PM Plugin

    PM Plugin

    Well got this all started up again so far I have everything done except the actual sending and replying of the message. Otherwise the delete, inbox, and outbox are all working as intended.

    I have the code in my dev branch just working on it when time allows should be done soon.

    wontfix sprinkle feature request up-for-grabs 
    opened by lilfade 39
  • Use Illuminate/Schema in installer, instead of raw queries, to support SQL Server, Postgres, and SQLite automatically

    Use Illuminate/Schema in installer, instead of raw queries, to support SQL Server, Postgres, and SQLite automatically

    Hey,

    I'm investigating userfrosting for an upcoming project. We would like to use our azure SQL db but I'm not sure how to connect successfully from userfrosting.

    A connection would normally be made with the following: $connection = new PDO( "sqlsrv:server = tcp:$HOST,$PORT; Database = $DB", $USER, $PASS);

    But I'm unsure how I can tell userfrosting to make a connection with sqlsrv, or include tcp and the port in the hostname? I guess for the tcp+port I would just set db_host to include tcp and the port? but I'm still not sure how I could configure userfrosting to use sqlsrv...

    Any ideas?

    compatibility installation todo data model 
    opened by xoorath 38
  • Security testing for butterflyknife

    Security testing for butterflyknife

    Butterflyknife will give admins more fine-grained control over user authorization. However, this also means more "moving parts" and a greater chance of security failure. So, we need to carefully test the security of each API page, trying out different POST and GET requests from different types of accounts, as well as from a logged-out state. Any volunteers?

    security 
    opened by alexweissman 38
  • Issue with Users Page

    Issue with Users Page

    This is a fresh install of UserFrosting, so I probably messed something up in the install. When I go to view the Users page as the root account, I see this: image

    As an administrator, I see this: image

    And if I click back to the Dashboard from the Users page as an administrator, this happens: image

    Any ideas what is wrong?

    troubleshooting 
    opened by dlbass 36
  • Updating language files

    Updating language files

    With the new version of UF and its new features, come new messages. Several users have graciously contributed translations of the messages to other languages, and I'd like to call on our community to help update the language files, if they'd be so kind.

    UF currently has the following language files that need to be updated:

    • ~~Spanish~~ (thanks to @jchorques ) Updated thanks to @tyl3r
    • Italian (thanks to @Pe46dro )
    • ~~Dutch~~ (thanks to @joey102 ) Updated thanks to @Editandrew
    • ~~German~~ (thanks to @rocketworm ) Already updated thanks to @X-Anonymous-Y!
    • ~~Thai~~ (thanks to @popiazaza)
    • ~~Portugese~~ Thanks @riotbr!
    • ~~Turkish~~ Thanks to @emrecaga
    • ~~French~~ Thanks to @Ulydev

    I'd also like to solicit translations to any other languages that don't yet have, including (but not limited to):

    • Chinese (Mandarin)
    • Japanese
    • Malay
    • Vietnamese
    • Korean
    • Bengali
    • Hindi
    • Punjabi
    • Russian
    • Arabic
    • Javanese
    • Persian (Farsi)
    • Hebrew

    If you're interested and capable, let me know! For translators, the current English language file, en_US.php, should be considered the most up-to-date version at any given time (mainly because the primary developers are English speakers ;-) )

    wontfix internationalization todo 
    opened by alexweissman 35
  • captcha

    captcha

    Hi again,

    I am using the latest version of your app.

    When trying to register a new user, I am running into the following problem on the registration page: screen shot 2014-11-06 at 12 51 08

    I also notice in the developer tools: screen shot 2014-11-06 at 12 52 19

    I see you guys have been trying to sort the problem out, have you been able to do so, or is this just happening to me?

    Secondly, is there a way for me to disable using captcha for now?

    Thanks, Tay

    confirmed bug compatibility 
    opened by tayzee 32
  • send user email after account has been activated

    send user email after account has been activated

    Is it possible to allow a user to register - appear as 'unactivated' in the system and then when the admin activates their account they get sent an email to let them know?

    use and extension 
    opened by tosh83 31
  • reworked flashAlerts(), client-side pushAlert(), clearAlerts()

    reworked flashAlerts(), client-side pushAlert(), clearAlerts()

    As discussed in chat ;) but for the notes!

    The existing alerting functionality has been extended to allow the client-side message notification via JQuery. The old functionality is preserved and was tested. Therefore, it is now possible to simply push an alert on any JQuery element with the function pushAlert(alert_type, alert_message). Existing alerts can be easily removed with clearAlerts(). Everything concerning server-side alerts should work as before.

    There are now two additional helper functions (getAlertHtml(..)) which were necessary to prevent the unnecessary doubling of code. So both functions (pushAlert(), flashAlerts()) are built on the same sub functions.

    Edited: updated Results

    opened by thexmanxyz 30
  • ReturnTypeWillChange warning with PHP 8.1

    ReturnTypeWillChange warning with PHP 8.1

    tl;dr : UserFrosting 4.6 doesn't support PHP 8.1, use PHP 8.0.


    The following exception can be seen when running UserFrosting 4.6 with PHP 8.1, either in the console or browser.

    Deprecated: Return type of Slim\Collection::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in ~/userfrosting/UserFrosting4/app/vendor/slim/slim/Slim/Collection.php on line 112
    

    This is caused by PHP 8.1 new return type. See : https://stackoverflow.com/questions/71133749/reference-return-type-of-should-either-be-compatible-with-or-the-re/71133750#71133750

    While UserFrosting code is generally compatible with PHP 8.1, this warning originate in Slim 3, a dependency of UserFrosting. Unfortunately, Slim decided not to fix this issue in v3. See this comment : https://github.com/slimphp/Slim/pull/3186#issuecomment-1098254226

    Switching Slim 3 for Slim 4 is not an easy task. It's already been done for the upcoming UserFrosting 5, but a release of V5 is unfortunately not schedule soon, as more work is require around it.

    For the time being, UserFrosting 4.6 does not officially support PHP 8.1. You are encouraged to user PHP 8.0 while UF5 is being finalized.

    confirmed bug 
    opened by lcharette 1
  • Update uf-jqueryvalidation-config.js

    Update uf-jqueryvalidation-config.js

    Added conditions to add the JqueryValidation message under the Select2 container. and other conditions for Radio and Checkbox. The validation message for Select2 were showing up above the field whereas all the input fields were showing below. This fixes that. The Radio button and Checkbox should also be fine, I have not tested all scenarios for that.

    opened by ssnukala 1
  • `Mailer` does not fully clear message state after sending message, for example Reply-To header, leading to unexpected behavior

    `Mailer` does not fully clear message state after sending message, for example Reply-To header, leading to unexpected behavior

    When Mailer::send is called, it is supposed to fully clear the state of the underlying PHPMailer object as it pertains to message headers and content. That way, the Mailer instance can be used as a service to send additional emails during the lifetime of a request. The way this is currently accomplished is by calling clearAllRecipients.

    The problem is that at least in the current version of PHPMailer, this does not clear Reply-To, Attachment, or custom headers. Those would appear to require separate calls to PHPMailer:: clearReplyTos, PHPMailer::clearAttachments, and PHPMailer::clearCustomHeaders, respectively. So if I create an email message, send it, then create another message with a different reply-to value, the new reply address will get appended instead of replacing the old reply address. This leads to unexpected behavior and a potential privacy concern, with the Reply-To header containing both addresses.

    Honestly this looks like it needs a significant refactor to make our Mailer class truly stateless. One possibility is to simply create a new PHPMailer instance on demand when send is called. I'm not sure if that's something we considered and rejected for whatever reason in the past.

    In the meantime, a quick fix might just be to call those extra clear methods wherever clearAllRecipients is called.

    possible bug 
    opened by alexweissman 6
  • generateRandomToken improvement.

    generateRandomToken improvement.

    The MD5 call altogether has been switched out for the hexadecimal representation of 16 CSRNG-generated bytes (the same amount at MD5 produces). See this.

    security 
    opened by michaellrowley 2
Releases(v4.6.6)
  • v4.6.6(Oct 3, 2022)

    Fix

    • Added dependencies to AddingForeignKeys Migration (#1212)

    New Contributors

    • @StrykeSlammerII made their first contribution in https://github.com/userfrosting/UserFrosting/pull/1212

    Full Changelog: https://github.com/userfrosting/UserFrosting/compare/v4.6.5...v4.6.6

    Source code(tar.gz)
    Source code(zip)
  • 5.0.0-alpha2(Nov 28, 2022)

    The release of Alpha1 was created using the wrong branch. This release fix this, and brings no other changes from the first (intended) release.


    This is the first pre-release of UserFrosting 5 !

    IMPORTANT: This version is unstable and meant for development purpose only. It's should not be used on your own project. Things are not 100% final and no documentation is provided.

    This version is meant as a the first stepping stone of the big V5 released, a way to "freeze frame" the current code and as a first technical release test. It's also meant for UserFrosting developers to get a first glimpse of what's coming up.

    While no major changes are planed at this stage, things could still be moving around. No breaking changes might not be documented during the alpha stage. Limited support for UF5 can be found for this alpha on the chat or GitHub Discussions.

    Requirements

    • PHP 8.0 or 8.1
    • Node.js 14 or higher
    • Database (MariaDB, MySQL, Postgres, SQLite, or SQL Server)
    • Composer 2

    Installation

    To install locally, you can use theses commands, as long as you met the requirements above (i.e. PHP and Node installed). When running the bake command, you can select sqlite if you don't have a database engine installed.

    composer create-project userfrosting/userfrosting UserFrosting "^5.0.0@dev"
    cd UserFrosting/
    php bakery bake
    

    Seeds are currently not run automatically. To manually run seeds (to create default groups, roles and permissions), run this command:

    php bakery seed
    

    Website can be locally served with the following command and then be accessed at http://localhost:8888.

    php -S localhost:8888 -t public
    

    What is UserFrosting 5 ?

    UserFrosting 5 is the culmination of more than a year of work by @lcharette. It is a complete rewrite of the backend PHP code. And by complete, we really mean complete. No class was left untouched! The main updates are :

    • Slim 3 upgraded to Slim 4
    • Pimple Container replaced with PHP-DI
    • Frontend assets management replaced with Webpack Encore
    • New Sprinkle system, now with extra modularity
    • Skeleton type main repo for easier
    • Built in sprinkle are now managed by Composer
    • New Event dispatcher and listener services
    • New Bakery command for easier debugging
    • 100% test coverage and quality check through PHPStan
    • And so much more

    The Slim migration itself is a big deal. While brining UF to a more modern era, it had the most impact on the core changes applied to the UserFrosting framework. Most changes were made in response to the new Slim 4 requirements and changes. It also required the use of a new Dependency Injector, which itself really brought UF5 to a whole new level. You should really check out PHP-DI, it's awesome!

    Basically, UF5 uses updated dependencies, all of existing code have been updated to new standard and new test coverage should provide better long term stability.

    What UserFrosting 5 isn't ?

    UF5 is not a drop-in replacement for UF4. The whole backend has been rewritten, with a new container, sprinkle system, etc. which will require most sprinkle to be updated manually.

    UserFrosting 5 also offers the same frontend as UserFrosting 4. But the bases have been set for the future, with Webpack Encore and the current AdminLTE theme separated in it's own Sprinkle providing the necessary tools for Vue.js or other similar frontend.

    Known bugs and missing features

    While most features are ready at this point, some things are not:

    • [Core] Default seeds are not run automatically on Bake
    • [Core Sprinkle] CSRF service not reimplemented yet.
    • [Core Sprinkle] Clear cache bakery command is not implemented yet.
    • [Core & Admin Sprinkles] Sprunje pagination might not work properly.
    • [Admin Sprinkle] Enabling/Disabling using the dropdown a user is not enabled (requires CORS).
    • [Admin Sprinkle] Clear cache button doesn't work.
    • [AdminLTE Theme] Alert messages might not be properly displayed, for example when a login error should be shown
    • [Webpack Encore] Sprinkle entries needs to be manually copied in their parent sprinkle (Will require a custom plugin or contribution to Encore)
    • [General] Some test coverage still need to be added

    What's next? When will it be stable? How can I help?

    There's currently no ETA on the release date of the first stable version. For now, alpha released are planed, when necessary, until all features and code coverage are done. Once this is done, the first beta should be released and work will start on the documentation. Once this is also done, the first stable release should be released.

    The best way to help is to contribute to the code and create pull requests. You can also help by testing the current release and signaling bugs by opening a new issue. Just make sure to reference V5!

    Alternatively, you can contribute through our Open Collective or buying a coffee round.

    Source code(tar.gz)
    Source code(zip)
  • 5.0.0-alpha1(Aug 10, 2022)

    This is the first pre-release of UserFrosting 5 !

    IMPORTANT: This version is unstable and meant for development purpose only. It's should not be used on your own project. Things are not 100% final and no documentation is provided.

    This version is meant as a the first stepping stone of the big V5 released, a way to "freeze frame" the current code and as a first technical release test. It's also meant for UserFrosting developers to get a first glimpse of what's coming up.

    While no major changes are planed at this stage, things could still be moving around. No breaking changes might not be documented during the alpha stage. Limited support for UF5 can be found for this alpha on the chat or GitHub Discussions.

    Requirements

    • PHP 8.0 or 8.1
    • Node.js 14 or higher
    • Database (MariaDB, MySQL, Postgres, SQLite, or SQL Server)
    • Composer 2

    Installation

    To install locally, you can use theses commands, as long as you met the requirements above (i.e. PHP and Node installed). When running the bake command, you can select sqlite if you don't have a database engine installed.

    composer create-project userfrosting/userfrosting UserFrosting "^5.0.0@dev"
    cd UserFrosting/
    php bakery bake
    

    Seeds are currently not run automatically. To manually run seeds (to create default groups, roles and permissions), run this command:

    php bakery seed
    

    Website can be locally served with the following command and then be accessed at http://localhost:8888.

    php -S localhost:8888 -t public
    

    What is UserFrosting 5 ?

    UserFrosting 5 is the culmination of more than a year of work by @lcharette. It is a complete rewrite of the backend PHP code. And by complete, we really mean complete. No class was left untouched! The main updates are :

    • Slim 3 upgraded to Slim 4
    • Pimple Container replaced with PHP-DI
    • Frontend assets management replaced with Webpack Encore
    • New Sprinkle system, now with extra modularity
    • Skeleton type main repo for easier
    • Built in sprinkle are now managed by Composer
    • New Event dispatcher and listener services
    • New Bakery command for easier debugging
    • 100% test coverage and quality check through PHPStan
    • And so much more

    The Slim migration itself is a big deal. While brining UF to a more modern era, it had the most impact on the core changes applied to the UserFrosting framework. Most changes were made in response to the new Slim 4 requirements and changes. It also required the use of a new Dependency Injector, which itself really brought UF5 to a whole new level. You should really check out PHP-DI, it's awesome!

    Basically, UF5 uses updated dependencies, all of existing code have been updated to new standard and new test coverage should provide better long term stability.

    What UserFrosting 5 isn't ?

    UF5 is not a drop-in replacement for UF4. The whole backend has been rewritten, with a new container, sprinkle system, etc. which will require most sprinkle to be updated manually.

    UserFrosting 5 also offers the same frontend as UserFrosting 4. But the bases have been set for the future, with Webpack Encore and the current AdminLTE theme separated in it's own Sprinkle providing the necessary tools for Vue.js or other similar frontend.

    Known bugs and missing features

    While most features are ready at this point, some things are not:

    • [Core] Default seeds are not run automatically on Bake
    • [Core Sprinkle] CSRF service not reimplemented yet.
    • [Core Sprinkle] Clear cache bakery command is not implemented yet.
    • [Core & Admin Sprinkles] Sprunje pagination might not work properly.
    • [Admin Sprinkle] Enabling/Disabling using the dropdown a user is not enabled (requires CORS).
    • [Admin Sprinkle] Clear cache button doesn't work.
    • [AdminLTE Theme] Alert messages might not be properly displayed, for example when a login error should be shown
    • [Webpack Encore] Sprinkle entries needs to be manually copied in their parent sprinkle (Will require a custom plugin or contribution to Encore)
    • [General] Some test coverage still need to be added

    What's next? When will it be stable? How can I help?

    There's currently no ETA on the release date of the first stable version. For now, alpha released are planed, when necessary, until all features and code coverage are done. Once this is done, the first beta should be released and work will start on the documentation. Once this is also done, the first stable release should be released.

    The best way to help is to contribute to the code and create pull requests. You can also help by testing the current release and signaling bugs by opening a new issue. Just make sure to reference V5!

    Alternatively, you can contribute through our Open Collective or buying a coffee round.

    Source code(tar.gz)
    Source code(zip)
  • v4.6.5(Jul 1, 2022)

    Fix

    • Fix for FindUniqueTest when class mappings are changed (#1201)
    • Allowing no default group on register (#1202)
    • Allow Composer plugin by default
    • Add PHP 8.1 version to test suite

    Full Changelog: https://github.com/userfrosting/UserFrosting/compare/v4.6.4...v4.6.5

    Source code(tar.gz)
    Source code(zip)
  • v4.6.4(Feb 15, 2022)

    Fix

    • Foreign Key constraint fails when an admin attempts to create a new user (#1190)
    • Fix for AccountControllerTest when registration is disabled (#1192)
    • Native install on PHP 8.* install fails due to eventdispatcher incompatibility between rockettheme and Symphony (#1195 & #1196)
    • Fix PHP7.4+ compatibility in Model findUnique (#1193)
    • Handle the case where all roles are removed from a user (#1194)

    What's Changed

    • Foreign Key constraint fails when an admin attempts to create a new user by @avsdev-cw in https://github.com/userfrosting/UserFrosting/pull/1190
    • Fix for AccountControllerTest when registration is disabled by @archey347 in https://github.com/userfrosting/UserFrosting/pull/1192
    • Resolve #1195-Update composer.json by @ssnukala in https://github.com/userfrosting/UserFrosting/pull/1196
    • Fix PHP7.4+ compatibility by @avsdev-cw in https://github.com/userfrosting/UserFrosting/pull/1193
    • Handle the case where all roles are removed from a user by @avsdev-cw in https://github.com/userfrosting/UserFrosting/pull/1194
    • Apply fixes from StyleCI by @lcharette in https://github.com/userfrosting/UserFrosting/pull/1198
    • Release 4.6.4 by @lcharette in https://github.com/userfrosting/UserFrosting/pull/1197

    New Contributors

    • @archey347 made their first contribution in https://github.com/userfrosting/UserFrosting/pull/1192

    Full Changelog: https://github.com/userfrosting/UserFrosting/compare/v4.6.3...v4.6.4

    Source code(tar.gz)
    Source code(zip)
  • v4.6.3(Dec 15, 2021)

    Security

    • Added placeholder URL for site.uri.public in configuration to guard against Host Header Injection attacks by default in production.

    IMPORTANT : As of 4.6.3, site.uri.public must be explicitly set in your production configuration to avoid security issues. If not set, some links and emails will not work properly. See Going Live for more info.

    What's Changed

    • Placeholder for site.uri.public in production by @Silic0nS0ldier in https://github.com/userfrosting/UserFrosting/pull/1187
    • Release 4.6.3 by @lcharette in https://github.com/userfrosting/UserFrosting/pull/1188

    Full Changelog: https://github.com/userfrosting/UserFrosting/compare/v4.6.2...v4.6.3

    Source code(tar.gz)
    Source code(zip)
  • v4.6.2(Oct 27, 2021)

    Changes

    • Updated Portuguese translation (#1178).

    Fix

    • Fix UF_MODE not being loaded by Config (#1177).

    New Contributors

    • @josemachado94 made their first contribution in https://github.com/userfrosting/UserFrosting/pull/1178 !
    Source code(tar.gz)
    Source code(zip)
  • v4.6.1(Aug 1, 2021)

  • v4.5.2(Aug 1, 2021)

  • v4.6.0(Jul 18, 2021)

    See full Changelog

    See upgrade guide

    Changed Requirements

    • Drop PHP 7.2 support. Gain PHP 8.0 support. PHP 8.0 is now recommended.

    Dependencies upgrade

    • Replaced individual UserFrosting Assets, Cache, Config, Fortress, i18n, Session, Support and UniformResouceLocator repos with monolitic userfrosting/framework repo.
    • Upgrade all Laravel packages to ^8.x from ^5.8.
    • Upgrade vlucas/phpdotenvto ^5.3 from ^3.4.
    • Upgrade symfony/console to ^5.1 from ^4.3.
    • Upgrade phpunit/phpunit to ^9.5

    New Feature

    • Added support for built-in PHP Server.

    Changes

    • Per user theme ($user->theme) is now deprecated and disabled by default. To enable back, change per_user_theme config to true (#1131). This feature will be removed in future version.
    • Bakery command execute method now requires to return an int (Symfony 4.4 upgrade : https://symfony.com/blog/new-in-symfony-4-4-console-improvements).
    • UserFrosting\Sprinkle\Core\Database\EloquentBuilder now uses Illuminate\Database\Eloquent\Concerns\QueriesRelationships Trait instead of manually implementing withSum, withAvg, withMin, withMax & withAggregate. See Laravel documentation for usage change.
    • Migrate uf-modal.js to jQuery Boilerplate (#740)
    Source code(tar.gz)
    Source code(zip)
  • v4.5.1(Jul 14, 2021)

    Fixed

    • Fix php bakery route:list error on procedural routes (#1162).
    • Fix NO_DATA alert when editing a User Role (#1163).
    • [Vagrant/Homestead] Force use of PHP 7.4 for CLI (since default is now PHP 8).
    • Fix integration with filp/whoops 2.14

    Changed

    • Updated Docker development images (PHP 7.2 to 7.4, NodeJS 12.x to 14.x) (#1085).
    Source code(tar.gz)
    Source code(zip)
  • v4.5.0(Apr 22, 2021)

    See full Changelog

    See upgrade guide

    Changed Requirements

    • Drop PHP 7.1 support. PHP 7.4 is now recommended.
    • Raised NodeJS version requirement from >=10.12.0 to ^12.17.0 || >=14.0.0 (#1138).
    • Raised NPM version requirement from >=6.0.0 to >=6.14.4 (#1138).

    Changed Composer Dependencies

    • Updated wikimedia/composer-merge-plugin from ^1.4.0 to ^2.1.0 (#1117).

    Added

    • Composer 2 support (#1117).
    • Lando support.
    • Added more SMTP options in env and setup:smtp bakery command (#1077),
    • Added new MAIL_MAILER environment variable to set mailer type.
    • Added "Native mail" to setup:mail bakery command.

    Changed

    • Implement findInt (#1117).
    • Replace getenv() with env() (#1121).
    • Replaced UserFrosting\Sprinkle\Core\Bakery\Helper\NodeVersionCheck with new UserFrosting\Sprinkle\Core\Util\VersionValidator class.
    • Bakery command setup:smtp renamed to setup:mail. The old command is still available as an alias for backward compatibility.
    • Changed .php_cs to .php_cs.dist.
    • Changed phpunit.xml to phpunit.xml.dist.

    Fixed

    • Replaced AdminLTE credit in default footer (old link was dead).
    • Issue with path slashes on Windows (#1133).

    Removed

    • Removed deprecated UserFrosting\System\Bakery\Migration (deprecated in 4.2.0).
    • Removed deprecated UserFrosting\Tests\DatabaseTransactions (deprecated in 4.2.0).
    • Removed deprecated UserFrosting\Sprinkle\Core\Tests\ControllerTestCase (deprecated in 4.2.2).
    • Removed deprecated UserFrosting\Sprinkle\Core\Model\UFModel (deprecated in 4.1).
    • Removed deprecated UserFrosting\Sprinkle\Core\Sprunje\Sprunje::getResults (deprecated in 4.1.7).
    • Removed deprecated UserFrosting\Sprinkle\Account\Database\Models\User::exists (deprecated in 4.1.7).
    • Removed deprecated UserFrosting\Sprinkle\Core\Database\Models\Model::export (deprecated in 4.1.8).
    • Removed deprecated UserFrosting\Sprinkle\Core\Database\Models\Model::queryBuilder (deprecated in 4.1.8).
    • Removed deprecated UserFrosting\Sprinkle\Core\Database\Relations\Concerns\Unique::withLimit (deprecated in 4.1.7).
    • Removed deprecated UserFrosting\Sprinkle\Core\Database\Relations\Concerns\Unique::withOffset (deprecated in 4.1.7).
    • Removed deprecated UserFrosting\Sprinkle\Core\Error\RendererWhoopsRenderer::getResourcesPath.
    • Removed deprecated UserFrosting\Sprinkle\Core\Error\RendererWhoopsRenderer::setResourcesPath.
    • Removed deprecated Handlebar ifCond (Deprecated in 4.1).
    • Removed migration seed.
    • Removed support for migration with non static $dependencies properties.
    • Removed support for deprecated determineRedirectOnLogin service (deprecated in 4.1.10).
    Source code(tar.gz)
    Source code(zip)
  • v4.4.5(Mar 6, 2021)

    Changed

    • Replaced Travis with Github Actions
    • Force Composer 1.0 for Docker (#1126)
    • Update error.html.twig - add container (#1128)
    • Update some tests
    • Update Vagrant doc & config
    Source code(tar.gz)
    Source code(zip)
  • v4.4.4(Nov 20, 2020)

    Fixed

    • Replaced AdminLTE credit in default footer (old link was dead).
    • Lock Travis to Composer V1 to avoid error until Composer V2 support can be fixed.
    • Remove whitespace at top of page templates (#1107)
    • Deep extend when adding global query params in ufTable (#1114)
    • Check for null key in Unique::buildTertiaryDictionary (#1109)
    • Client-side assets containing glob characters causing crashes when building assets.
    • Fixed issue where merging of package dependencies would show as "undefined", resulting in debugging challenges where there are issues.
    Source code(tar.gz)
    Source code(zip)
  • v4.3.4(Jun 19, 2020)

  • v4.4.3(Jun 3, 2020)

    Fixed

    • Changed some private methods to protected in tests for easier extension.
    • Tentative fix for duplication of user_name in user Factories.
    • Factories now uses ::class reference instead of string.
    • Fix ExceptionHandlerTest test to speed things up.
    Source code(tar.gz)
    Source code(zip)
  • v4.4.2(May 1, 2020)

    Fixed

    • Locale matcher can fail when client provided locale identifier has incorrect casing (#1087)
    • Sprunje applyTransformations method not returning the $collections object (#1068)
    • Old assets in app/assets/browser_modules not being deleted during install (#1092)
    • Added SKIP_PERMISSION_CHECK env to skip check for local directories that needs to be write protected. This can be used for local production env testing.
    Source code(tar.gz)
    Source code(zip)
  • v4.4.1(Apr 23, 2020)

    Fixed

    • Fixed issue where incompatible NPM packages would be browserified, resulting in install failures.
    • Replaced deprecated Twig class.
    • Fixed issue when compiling assets for production (#1078).
    • Migration dependencies should work with and without leading \ (#1023)
    • Throttler don't count successful logins (#1073)
    Source code(tar.gz)
    Source code(zip)
  • v4.4.0(Mar 22, 2020)

    See full Changelog

    See upgrade guide

    Changed Requirements

    • PHP 7.3 is now the recommended version, as 7.2 is already security fixes only.

    Changed Composer Dependencies

    • Reset Slim version to ^3.12
    • Updated PHPUnit to 8.5 (Version 7.5 still used for PHP 7.1)

    Added

    • PHP 7.4 Support & Travis environment.
    • New Locale service. Provides a list of available locales in diffeent form.
    • New BaseServicesProvider abstract class added as base for all ServiceProvider class.
    • Sprinkle Services Provider can now be autoloaded using the $servicesproviders property in the sprinkle bootstrapper class.
    • Current locale code can now be accessed from Twig using the currentLocale global variable ([#1056]).
    • Locale now have config & metadata file ([#850])
    • Added locale:compare, locale:dictionary and locale:info Bakery commands.
    • New cli service. Returns true if current app is a CLI envrionement, false otherwise.

    Changed

    • Interop\Container\ContainerInterface has been replaced with Psr\Container\ContainerInterface.
    • \UserFrosting\I18n\MessageTranslator is now \UserFrosting\I18n\Translator.
    • Translator service moved to it's own UserFrosting\Sprinkle\Core\I18n\TranslatorServicesProvider class.
    • Travis now uses Xenial instead of Trusty.
    • site.locales.available config now accept (string) identifier => (bool) enabled. Set identifier to false or null to remove it from the list.
    • Locale plural rules moved from the keys file to the new metadata files.

    Fixed

    • When internationalizing, the lang attribute value of the Twig template is not set to follow changes ([#982])
    • pt_Br locale identifier renamed to pt_BR.
    • Improved Docker support ([#1057])
    • Improved Bakery debug command output
    • Improve ordering by activity date ([#1061] & [#1062]; Thanks @ktecho!)
    • Updated Vagrant config and documentation
    • Fixed a bug where withTrashed in findUnique was not available when SoftDeletes trait is not included in a model.
    • CSRF global middleware is not loaded anymore if in a CLI envrionement. This will avoid sessions to be created for bakery and tests by default.
    • Browserified node modules not being correctly loaded.
    • Browserified node modules potentially colliding with real entrypoints.

    Removed

    • localePathBuilder service removed. Task now handled by the locale and translator services.
    Source code(tar.gz)
    Source code(zip)
  • v4.2.4(Feb 23, 2020)

    Warning : This is a maintenance release for UserFrosting 4.2. This releases fixes compatibility issues so UserFrosting 4.2 can actually be installed. This release should only be used to test older sprinkles and debugging issues for those Sprinkles, as it's the last version compatible with PHP 5.6 and PHP 7.0.

    It is encouraged to upgrade to UserFrosting 4.3.x or above.

    Fixed

    • Locked Slim version to 3.12.2 to fix container-interop/container-interop replacement with psr/container
    • Locked Symfony version to 4.x for backward compatibility
    Source code(tar.gz)
    Source code(zip)
  • v4.3.3(Nov 29, 2019)

    Fixed

    • Fixed wrong version number in define
    • Locked Slim version to 3.12.2 until UF 4.4 can fix container-interop/container-interop replacement with psr/container
    Source code(tar.gz)
    Source code(zip)
  • v4.3.2(Nov 20, 2019)

    Added

    • Add translation for Brazilian Portuguese (locale pt_BR) - Thanks @maxwellkenned ! (#1036)
    • Add translation for Serbian (sr_RS) - Thanks @zbigcheese ! (#1035)

    Changed

    • Updates to the French Locales (#1027)
    • Updates to the German Locales (#1039)
    • Updates to the Thai Locales (#1041)
    • Updates to the Greek Locales (#1042)
    • Updates to the Persian Locales (#1045)

    Fixed

    • Fix issue with hidden fields in group modal (#1033)
    • User cache not flushed on model save (#1050)
    • Fix "the passwords don't match" error when editing a user password (#1034, #1038)

    Deprecated

    UserController:updateField now expect the new value as $_PUT[$fieldName] (where $fieldName is the name of the field you want to update, eg. $_PUT['password'] for editing password) instead of $_PUT['value']. This will only affect your code if you're not using the user widget.

    Source code(tar.gz)
    Source code(zip)
  • v4.3.1(Sep 6, 2019)

  • v4.3.0(Aug 30, 2019)

    See full Changelog

    See upgrade guide

    Changed Requirements

    • Changed minimum PHP Version to 7.1

    Changed Composer Dependencies

    • Updated Laravel Illuminate packages to 5.8
    • Updated Twig to 2.11
    • Updated PHPUnit to 7.5
    • Updated Mockery to 1.2
    • Updated nikic/php-parser to 4.2.2
    • Updated PHPMailer/PHPMailer to 6.0.7
    • Updated league/csv to 9.2.1
    • Updated symfony/console to 4.3
    • Updated vlucas/phpdotenv to 3.4.0

    Changed Frontend Dependencies

    • Updated handlebar from 3.0.x to 4.1.2
    • Updated AdminLTE theme to 2.4.15 ([#994]; [#1014]; [#1015])
    • Updated Font Awesome to 5.9 ([#957]; [#870])

    Added

    • Separated BakeCommand class into multiple methods to make it easier for sprinkle to add custom command to the bake command.
    • Allow null group assignment for users ([#867]; [#964])
    • Password can now be set manually when creating new user ([#1017]; [#763])
    • Icon picker for user and group form ([#713]; [#1019])

    Fix

    • bake command return error if account sprinkle is not included ([#944])
    • Email is case-sensitive ([#881]; [#1012])
    • Update vulnerable handlebars@^3.0.3 to ^4.0.12 ([#921])
    • Moved handlebars-helpers.js from core to admin sprinkle ([#897])
    • Remove Package guzzle/guzzle is abandoned, you should avoid using it. Use guzzlehttp/guzzle instead message ([#1016])

    Changed

    • Account sprinkle now extend the Core BakeCommand class to add the create-admin to the general bake command. Any sprinkle already extending the Core BakeCommand might need adjustments.
    • Updated custom Eloquent relations (belongsToManyThrough, morphToManyUnique, belongsToManyUnique, morphToManyUnique, etc.) to support Laravel 5.8. See The belongsToMany Method.

    Removed

    • Removed belongsToManyConstrained (deprecated in 4.1.6)
    • Remove league/flysystem-aws-s3-v3 and league/flysystem-rackspace as core dependencies ([#1018])
    Source code(tar.gz)
    Source code(zip)
  • v4.3.0-beta.1(Jul 28, 2019)

    See Upgrade Guide : https://learn.userfrosting.com/develop/upgrading/42-to-43

    Changed Requirements

    • Changed minimum PHP Version to 7.1

    Changed Composer Dependencies

    • Updated Laravel Illuminate packages to 5.8
    • Updated Twig to 2.11
    • Updated PHPUnit to 7.5
    • Updated Mockery to 1.2
    • Updated nikic/php-parser to 4.2.2
    • Updated PHPMailer/PHPMailer to 6.0.7
    • Updated league/csv to 9.2.1
    • Updated symfony/console to 4.3
    • Updated vlucas/phpdotenv to 3.4.0

    Changed Frontend Dependencies

    • Updated handlebar from 3.0.x to 4.1.2
    • Updated AdminLTE theme to 2.4.15 (#994; #1014; #1015)
    • Updated Font Awesome to 5.9 (#957; #870)

    Added

    • Separated BakeCommand class into multiple methods to make it easier for sprinkle to add custom command to the bake command.
    • Allow null group assignment for users (#867; #964)
    • Password can now be set manually when creating new user (#1017; #763)

    Fix

    • bake command return error if account sprinkle is not included (#944)
    • Email is case-sensitive (#881; #1012)
    • Update vulnerable handlebars@^3.0.3 to ^4.0.12 (#921)
    • Moved handlebars-helpers.js from core to admin sprinkle (#897)
    • Remove Package guzzle/guzzle is abandoned, you should avoid using it. Use guzzlehttp/guzzle instead message (#1016)

    Changed

    • Account sprinkle now extend the Core BakeCommand class to add the create-admin to the general bake command. Any sprinkle already extending the Core BakeCommand might need adjustments.
    • Updated custom Eloquent relations (belongsToManyThrough, morphToManyUnique, belongsToManyUnique, morphToManyUnique, etc.) to support Laravel 5.8. See The belongsToMany Method.

    Removed

    • Removed belongsToManyConstrained (deprecated in 4.1.6)
    • Remove league/flysystem-aws-s3-v3 and league/flysystem-rackspace as core dependencies (#1018)
    Source code(tar.gz)
    Source code(zip)
  • v4.2.3(Jul 7, 2019)

    Added

    • Config to set Domain of RememberMe Cookie (#990, #991; Thanks @xrobau !)
    • Config settings for password min/max length (#993)
    • migrate:clean bakery command (#1007)

    Fixed

    • [PHPMailer] Turn off opportunistic TLS when disabled (#986, #987)
    • Migrator now ignore files that don't end in .php (#965, #998)
    • Respects CSRF_ENABLED environment variable (#976; Thanks @Poldovico !)
    • Checkbox bug on password change form (#1008)
    • On role page, users table action buttons not working (#1010)
    Source code(tar.gz)
    Source code(zip)
  • v4.2.2(Jun 2, 2019)

    Added

    • New group factory ('UserFrosting\Sprinkle\Account\Database\Models\Group')
    • New withController Trait, as an alternative for deprecated ControllerTestCase
    • StyleCI config
    • [Travis] SQLite in-memory DB testing
    • [Travis] enabled memcache & Redis service

    Fixed

    • DefaultPermissions seed results in SQL errors (#981; #983)
    • Make group & role schema consistent between creation and edition. Prevents group and role without a name or slug to be created during edition.
    • Factories changed to make sure slugs are unique
    • Fix WithTestUser Trait returning a user with id of zero or reserve master id when a non-master user was asked. If master user already exist, will return it instead of trying to create a new one (with the same id)
    • Force close db connection on test tearDown procedure

    Changed

    • Recommended PHP version is now 7.2, as 7.1 will be EOL in less than 6 months
    • Added tests coverage for all build-in controllers
    • Applied styling rules from StyleCI & updated php-cs-fixer rules to match StyleCI config

    Deprecated

    • ControllerTestCase. Use withController Trait instead.
    Source code(tar.gz)
    Source code(zip)
  • v.4.2.1(Apr 19, 2019)

    Added

    • UserFrosting\Sprinkle\Core\Database\Models\Session model for the sessions db table.
    • TEST_SESSION_HANDLER environment variable to set the session save handler to use for Testing.
    • withDatabaseSessionHandler Trait for testing. Use $this->useDatabaseSessionHandler() to use database session handler in tests.

    Fixed

    • Italian translation (#950)
    • User Registration failing when trying to register two accounts with the same email address (#953)
    • Bad test case for CoreController::getAsset.
    • User Model forceDelete doesn't remove the record from the DB (#951)
    • Fix PHP Fatal error that can be thrown when registering a new User
    • Session not working with database handler (#952)
    • Remove any persistences when forceDeleting user to prevent Foreign Key Constraints issue (#963)
    • More helpful error message in checkEnvironment.php (Thanks @amosfolz; #958)
    • Hide locale select from UI if only one locale is available (Thanks @avsdev-cw; #968)
    • Download CSV filename error (#893)
    Source code(tar.gz)
    Source code(zip)
  • v4.2.0-beta.2(Feb 28, 2019)

    See Upgrade Guide : https://learn.userfrosting.com/4.2/upgrading/41-to-42

    Added

    • sprinkle:list bakery command
    • NoCache middleware to prevent caching of routes with dynamic content
    • Sample test environment for Docker
    • Added validateMigrationDependencies helper method to BaseSeed
    • Greek locale (Thanks @lenasterg!; [#940])

    Changed

    • Sprinkle list in the bakery debug command to uses the new sprinkle:list table
    • routerCacheFile config now only contains filename. Locator is used to find the full path
    • Updated Docker integration
    • Moved some constants from app/defines.php to app/sprinkles/core/defines.php
    • Move route initialization from system to core sprinkle as router service is located in the core sprinkle

    Fix

    • Fix for Test Bakery command
      • Added coverage-format and coverage-path options to test Bakery command
      • Sprinkle Testscope is now case insensitive
      • Class testscope now relative to / instead of /UserFrosting/Sprinkle/ for more intuitive usage and to enable testing of non sprinkle tests
      • Detect and use the sprinkle phpunit.xml config when testing a specific sprinkle
    • SprinkleManager Improvements :
      • Added public getSprinklePath method to get path to the sprinkle directory
      • Added public getSprinkleClassNamespace method to get sprinkle base namespace
      • Added public getSprinkle method. Returns the sprinkle name as formatted in sprinkles.json file, independent of the case of the search argument.
      • Public isAvailable method now case insensitive.
      • Added public getSprinklesPath & setSprinklesPath to return or set the path to the sprinkle dir (app/sprinkles/)
      • Added JsonException if sprinkles.json doesn't contain valid json.
      • Added specific tests for sprinkleManager with 100% test coverage
    • Ignore existing package-lock.json which caused incorrect dependencies to be installed when upgrading from older versions of UserFrosting.
    • Vendor assets not found in production mode
    • Various Docker specific edge cases and misconfigurations
    • Fix path issue on Windows
    Source code(tar.gz)
    Source code(zip)
Owner
UserFrosting
A secure, modern user management system for PHP.
UserFrosting
Bolt is a simple CMS written in PHP. It is based on Silex and Symfony components, uses Twig and either SQLite, MySQL or PostgreSQL.

⚠️ Note - Not the latest version This is the repository for Bolt 3. Please know that Bolt 5 has been released. If you are starting a new project, plea

Bolt 4.1k Dec 27, 2022
Laravel-Library-Management-system is nice to management library system...

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

Eng Hasan Hajjar 2 Sep 30, 2022
Kyle is a web application built with Laravel for web developers and small companies to efficiently track and stay on top of yearly expenses related to services

Kyle Kyle is a web application built with Laravel for web developers and small companies to efficiently track and stay on top of yearly expenses relat

Laravelista 36 Jul 15, 2022
A Visual Bookmark App built on top of Laravel 5

Laravel Bookmark Visual bookmark organizer application in Laravel ![screenshot](https://rivario.com/bookmark/images/bookmark.png ""bookmark"") Working

YongHun Byun 155 Mar 25, 2022
A flexible, elegant, fast and easy-to-use content management system written in PHP

Textpattern CMS A flexible, elegant, fast and easy-to-use content management system written in PHP. Textpattern is free and open source software.

Textpattern CMS 702 Jan 6, 2023
An ultra-lightweight blogging engine, written in PHP.

简体中文, Italiano. ?? Translations wanted! Go to the wiki to find out more about translating Chyrp Lite into your language. What can Chyrp Lite do for me

Daniel Pimley 202 Jan 2, 2023
Admidio is a free open source user management system for websites of organizations and groups

Admidio is a free open source user management system for websites of organizations and groups. The system has a flexible role model so that it’s possible to reflect the structure and permissions of your organization.

Admidio 214 Jan 1, 2023
Open source ERP software. Built on modern PHP and bootstrap 4. Easy and powerful.

FacturaScripts Open source ERP software. Built on modern PHP and bootstrap 4. Easy and powerful. Install Clone and deploy with composer and npm (compo

Carlos Garcia 313 Jan 4, 2023
DooTask is a lightweight open source online project task management tool that provides various document collaboration tools, online mind mapping, online flowcharting, project management, task distribution, instant IM, file management and other tools.

DooTask is a lightweight open source online project task management tool that provides various document collaboration tools, online mind mapping, online flowcharting, project management, task distribution, instant IM, file management and other tools.

kuaifan 3k Jan 5, 2023
Faculty Management System (FMS) Built with Laravel 9 in Back-end and React , Redux in Front-end API's

Final Project Faculty Management System (FMS) as final project for faculty of Copmuter Science, Kandahar University, 2021 Faculty Management System (F

Shahghasi Adil 7 Jun 21, 2022
A complete open source hotel management system built with Laravel Framework.

Hotelio : Hotel Management System Hotelio is a open source hotel management system that manages your hotel operations, smoothly, effortless. Hotelio i

Mehedi Jaman 10 Dec 6, 2022
Smile ElasticSuite - Magento 2 merchandising and search engine built on ElasticSearch

Smile ElasticSuite - Magento 2 merchandising and search engine built on ElasticSearch

Smile - Open Source Solutions 706 Mar 21, 2022
Public append-only ledger microservice built with Slim Framework

Chronicle is a self-hostable microservice, built with Slim Framework, which enables authorized users to commit arbitrary data to an immutable, append-only public ledger.

Paragon Initiative Enterprises 460 Dec 22, 2022
mini Project in Laravel and vue js. Real World Laravel 8x + vue js Dashboard.Task management and project management system

mini Project in Laravel and vue js. Real World Laravel 8x + vue js Dashboard.Task management and project management system. Dashboard features such as: Complete Dashboard, Custom Authentication, Email Verification, custom-login-register-forgot password (without jetstream).

Hasmukh Dharajiya 2 Sep 20, 2022
A simple, proof-of-concept Laravel blog application powered by a MongoDB ORM.

Mongoblog A simple, proof-of-concept Laravel blog application powered by a MongoDB ORM. Separated API and front-end This is a RESTful application, who

Jayps 4 Nov 8, 2022
:panda_face: Jitamin is a free software written in PHP, intended to handle the project management over the web. QQ群: 656868

Jitamin Jitamin (pronounced /ˈdʒɪtəmɪn/) is a free software written in PHP, intended to handle the project management over the web. Jitamin is inspire

jitamin 916 Dec 14, 2022
BraincraftedBootstrapBundle integrates Bootstrap into Symfony2 by providing templates, Twig extensions, services and commands.

BraincraftedBootstrapBundle BraincraftedBootstrapBundle helps you integrate Bootstrap in your Symfony2 project. BootstrapBundle also supports the offi

Braincrafted 403 Aug 13, 2022
A micro web application providing a REST API on top of any relational database, using Silex and Doctrine DBAL

Microrest is a Silex provider to setting up a REST API on top of a relational database, based on a YAML (RAML) configuration file.

marmelab 187 Nov 17, 2022
Mira - A lightweight WebUI alternative to top/htop for GNU/Linux.

Mira Mira lets you monitor your server's resource usage through a responsive WebUI. ======== Introduction Screenshots Installation Limitations Known I

Jams246 9 Mar 27, 2022