Administration system for Hackathons :chart_with_upwards_trend: !

Overview

We are looking for maintainers!

In order to ensure active development going forward, we are looking for maintainers to join the project. Please contact the project owner if you are interested. and see CONTRIBUTING.md for information on what you can do about that.

LaraHack banner

LaraHack is a complete administration systems designed especially for hackathons and similar competitions .

For participants , it's a clean and simple to submit application with or without team and confirm attendance .

For Organizers , it's an easy way to create your hackathon website , view registrations , analyze statistics , Check-In and much more !

Features

  • WebSite Template : LaraHack has a website template that contains all necessary sections ( About,Challenges,Sponsors.. ) with a clean code so you can modify and customize it .

  • Registration : With LaraHack hackers can register easily with or without a team through a register view that is similar to TypeForm and also.

  • Statistics : The admin has access to a lot of statistics about registration such us registrations rate per day , decisions about hackers ... and muc more !

  • Dashboard : Admin can view all applications to the hackathon , take a decision and export data to Excel or CSV .

  • Mailing : LaraHack is able to send emails such as :

    • Successful application: which is sent to every hacker who apply , informing him that his application is done successfully and providing him with his team's name and team's code if he choosed to register with a team .
    • Decision : Waiting list , Rejected Or Accepted with confirm attendance link .
  • Check-In : Allows organizers to check the participants present at the event day .

  • Settings : Configure some essential settings ( at the moment it contains only the possibility to close or open registrations ) .

Screenshots

Statistics Page Registration Page Hackers Table Check-In Page

Setup

Quick deploy with Heroku

Deploy

Requirements

Requirement Version
PHP 7.1+
Composer 1.8+
MySQL 8.0+

Run the following commands to check the current installed versions:

php --version

For MySQL You can run this command in MySQL Commande Line Client :

select version() ;

Deploy locally

Getting a local instance of LaraHack up and running is very quickly ! Start By Creating A Database on MySQL and go with these steps :

1 - Clone the repository and cd to the project folder:

git clone https://github.com/ScientificClubofESI/LaraHack 
cd LaraHack 

2 - Install the necessary dependencies:

composer install

3 - Create your .env file from .env.example and generate an app key ( Don't forget to configure it with the database, and your email , if the host is googlemail so let mail driver , host and port as it was in env.example ) :

cp .env .env.example
php artisan key:generate  

4 - Migrate the database and start listening a queue in different terminal :

php artisan migrate 
php artisan queue:listen database 

5 - Finally run the server :

php artisan serve

Deploy Using Docker

Getting a local instance of LaraHack up and running is very quickly using docker-compose

1 - Clone the repository and cd to the app folder:

$ git clone https://github.com/ScientificClubofESI/LaraHack 
cd LaraHack 

2 - Change the ownership of the app:

$ sudo chown -R www-data:www-data 'LocalAppPath'
'LocalAppPath' ex: ~/LaraHack

3 - copy the config file:

$ cp .env.example.docker .env

4 - Mount the app directory and install the dependencies:

$ docker run --rm -v $(pwd):/app composer install --no-dev

5 - Build the app image and run the services:

$ docker-compose up -d

Customizing for your event

Hackathon name

Don't forget to put your hackathon name in environment variable APP_NAME ( .env file )

Hackathon Logo

Put your hackathon logo in the folder /public/images with the name of LOGO.png

Hackathon Landing Page

You find the hackathon landing page section in the folder /resources/views/sections with a clean and simple code

Mail Content

To customize the decision and confirmation emails for your event, edit email templates in /resources/views/emails

Notes :

  • Access to the admin dashboard via the link /admin
  • The default mail and password are : [email protected] and cse you can change them in the migrations folder database/migrations

Contributing

Do you have a feature request, bug report, or patch? Great! See CONTRIBUTING.md for information on what you can do about that. Contributions to LaraHack are welcome and appreciated !

Feedback / Questions

If you have any questions about this software, please contact [email protected] or [email protected] .

License

Copyright (c) 2019 Scientific Club Of ESI (https://github.com/ScientificClubofESI). Released under AGPLv3. See LICENSE for details.

Comments
  • Refactore to restful routes

    Refactore to restful routes

    This PR contains to commits:

    The first commit is a fix #1 adding restful routes as well as adding the correspond controllers There some exceptions due to how the code was written so I just changed the method name on the controller (eg: sendMail => send) I didn't change code all method login stays the same

    The second commit is a code refactoring for the ManageHackersController.php, getting rid of some unnecessary code (using eloquent and relations power instead of the DB facade)

    Also I have deleted this part of the method

    $Hackers_v2 =Hacker::all() ;
    $now = Carbon::now();
    $limit = 2 ;
    foreach ($Hackers_v2 as $hacker ) {
        $recieved_date = Carbon::parse($hacker->accepted_email_received_at)->addDays($limit) ; 
        if($recieved_date->lt($now)) {
            $hacker->reject();
            $hacker->save();
        }       
    }
    

    which first it not a good idea to make a loop each time you land on the page (eg: for more than 1000 member)

    secondly the code itself doesn't do anything

    explanation: imagine accepted_email_received_at = 13/04/2019 and I'm accepted (decision) and we are on the same date so nothing is happens but after 3 day from now I will be automatically rejected due to this code

    PS: this is as far as I understood the code

    Some other function also need some refactor so I it'll not bother you I'll submit some refactors from time to time

    In the end Thank you for this great idea which facilitate the process of organizing a hackathon

    opened by MiloudiMohamed 6
  • Dockerizing LaraHack

    Dockerizing LaraHack

    Dockerizing LaraHack

    • adding app Dockerfile image
    • adding docker-compose file to manage the services (mysql, redis, nginx)
    • adding services config files
    opened by th3happybit 5
  • Bump symfony/http-foundation from 4.4.1 to 4.4.7

    Bump symfony/http-foundation from 4.4.1 to 4.4.7

    Bumps symfony/http-foundation from 4.4.1 to 4.4.7.

    Release notes

    Sourced from symfony/http-foundation's releases.

    v4.4.7

    Changelog (https://github.com/symfony/http-foundation/compare/v4.4.6...v4.4.7)

    • no changes

    v4.4.6

    Changelog (https://github.com/symfony/http-foundation/compare/v4.4.5...v4.4.6)

    • bug #36173 Fix clear cookie samesite (guillbdx)
    • bug #36103 fix preloading script generation (nicolas-grekas)

    v4.4.5

    Changelog (https://github.com/symfony/http-foundation/compare/v4.4.4...v4.4.5)

    • bug #35709 fix not sending Content-Type header for 204 responses (Tobion)
    • bug #35583 Add missing use statements (fabpot)

    v4.4.4

    Changelog (https://github.com/symfony/http-foundation/compare/v4.4.3...v4.4.4)

    • bug #35305  Fix stale-if-error behavior, add tests (mpdude)
    Commits
    • 62f9250 [HttpFoundation] Do not set the default Content-Type based on the Accept header
    • 67d0196 add missing gitattributes for phpunit-bridge
    • 0a3b771 Merge branch '3.4' into 4.4
    • a8833c5 [Http Foundation] Fix clear cookie samesite
    • 109ac25 [DI] fix preloading script generation
    • ff006c7 Fix more quotes in exception messages
    • f4dc52b Fix quotes in exception messages
    • 2d4d118 Merge branch '3.4' into 4.4
    • 13f9b08 Fix quotes in exception messages
    • 01887e8 Add missing dots at the end of exception messages
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bump symfony/http-foundation from 4.2.4 to 4.4.1

    Bump symfony/http-foundation from 4.2.4 to 4.4.1

    Bumps symfony/http-foundation from 4.2.4 to 4.4.1.

    Changelog

    Sourced from symfony/http-foundation's changelog.

    CHANGELOG

    5.1.0

    • Deprecate Response::create(), JsonResponse::create(), RedirectResponse::create(), and StreamedResponse::create() methods (use __construct() instead)

    5.0.0

    • made Cookie auto-secure and lax by default
    • removed classes in the MimeType namespace, use the Symfony Mime component instead
    • removed method UploadedFile::getClientSize() and the related constructor argument
    • made Request::getSession() throw if the session has not been set before
    • removed Response::HTTP_RESERVED_FOR_WEBDAV_ADVANCED_COLLECTIONS_EXPIRED_PROPOSAL
    • passing a null url when instantiating a RedirectResponse is not allowed

    4.4.0

    • passing arguments to Request::isMethodSafe() is deprecated.
    • ApacheRequest is deprecated, use the Request class instead.
    • passing a third argument to HeaderBag::get() is deprecated, use method all() instead
    • [BC BREAK] PdoSessionHandler with MySQL changed the type of the lifetime column, make sure to run ALTER TABLE sessions MODIFY sess_lifetime INTEGER UNSIGNED NOT NULL to update your database.
    • PdoSessionHandler now precalculates the expiry timestamp in the lifetime column, make sure to run CREATE INDEX EXPIRY ON sessions (sess_lifetime) to update your database to speed up garbage collection of expired sessions.
    • added SessionHandlerFactory to create session handlers with a DSN
    • added IpUtils::anonymize() to help with GDPR compliance.

    4.3.0

    • added PHPUnit constraints: RequestAttributeValueSame, ResponseCookieValueSame, ResponseHasCookie, ResponseHasHeader, ResponseHeaderSame, ResponseIsRedirected, ResponseIsSuccessful, and ResponseStatusCodeSame
    • deprecated MimeTypeGuesserInterface and ExtensionGuesserInterface in favor of Symfony\Component\Mime\MimeTypesInterface.
    • deprecated MimeType and MimeTypeExtensionGuesser in favor of Symfony\Component\Mime\MimeTypes.
    • deprecated FileBinaryMimeTypeGuesser in favor of Symfony\Component\Mime\FileBinaryMimeTypeGuesser.
    • deprecated FileinfoMimeTypeGuesser in favor of Symfony\Component\Mime\FileinfoMimeTypeGuesser.
    • added UrlHelper that allows to get an absolute URL and a relative path for a given path

    4.2.0

    • the default value of the "$secure" and "$samesite" arguments of Cookie's constructor
    ... (truncated)
    Commits
    • 8bccc59 Merge branch '4.3' into 4.4
    • fcafc7c Merge branch '3.4' into 4.3
    • d2d0cfe [HttpFoundation] Fixed typo
    • cc09809 [HttpFoundation] Update CHANGELOG for PdoSessionHandler BC BREAK in 4.4
    • c2480b7 Merge branch '3.4' into 4.3
    • f7efd0b Simpler example for Apache basic auth workaround
    • 502040d Merge branch '4.3' into 4.4
    • 0ac9ebf Merge branch '3.4' into 4.3
    • a558b18 feature #34405 [HttpFoundation] Added possibility to configure expiration tim...
    • 0c5217a [HttpFoundation] Added possibility to configure expiration time in redis sess...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot ignore this [patch|minor|major] version will close this PR and stop Dependabot creating any more for this minor/major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Dockerizing LaraHack

    Dockerizing LaraHack

    Dockerize LaraHack

    Changes include:

    • Dockerfile to build an image for the app
    • docker-compose file to start and manage the services
    • Specific nginx file to be used in Docker (no SSL)
    • Specific mysql file to be used in Docker
    • Specific php file to be used in Docker
    • deploy.sh -- Laravel key generation and migration -- start php-fpm
    • .env file suits docker services configuration
    • Change Readme to markdown formatting and add instructions for Docker deploy
    opened by th3happybit 0
  • Bump laravel/framework from 5.8.4 to 5.8.38

    Bump laravel/framework from 5.8.4 to 5.8.38

    Bumps laravel/framework from 5.8.4 to 5.8.38.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
Owner
Scientific Club of ESI
The scientific club of ESI (CSE), is the oldest club in the Higher National School of Computer Science. Founded in 2008 by a group of ambitious students.
Scientific Club of ESI
The server administration software for your needs

The server administration software for your needs. Developed by experienced server administrators, this panel simplifies the effort of managing your hosting platform.

Froxlor 1.5k Dec 29, 2022
Simple, modern looking server status page with administration and some nice features, that can run even on shared webhosting

Simple, modern looking server status page with administration and some nice features, that can run even on shared webhosting

Server status project 363 Dec 28, 2022
Tars is a high-performance RPC framework based on name service and Tars protocol, also integrated administration platform, and implemented hosting-service via flexible schedule.

TARS - A Linux Foundation Project TARS Foundation Official Website TARS Project Official Website WeChat Group: TARS01 WeChat Offical Account: TarsClou

THE TARS FOUNDATION PROJECTS 9.6k Jan 1, 2023
Fsociety RAT, The Open Source C++ Remote Administration Tool (RAT)

Fsociety-RAT It was really fun to make this project! This project have a lot of great features and a very good website control for the bots. The final

Elliot Alderson 11 Nov 30, 2022
Get the system resources in PHP, as memory, number of CPU'S, Temperature of CPU or GPU, Operating System, Hard Disk usage, .... Works in Windows & Linux

system-resources. A class to get the hardware resources We can get CPU load, CPU/GPU temperature, free/used memory & Hard disk. Written in PHP It is a

Rafael Martin Soto 10 Oct 15, 2022
Tier3 POS SYSTEM - FBR Integrated POS System

FBR-POS-INTEGRATION-SERVICES Tier3 POS SYSTEM - FBR Integrated POS System Minimum System Requirements : PHP version 7.2+ (openssl, curl, gd, intl and

Tier3 Pakistan 2 Feb 28, 2022
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 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

Admidio 212 Dec 30, 2022
Eventum Issue Tracking System

Eventum is a user friendly and very flexible issue tracking system, that can be used by a support department to track incoming technical support requests, or by a software development team to quickly organize tasks and bugs.

Eventum Issue tracking system 152 Dec 14, 2022
Anbarex is an ERP system

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

null 3 May 21, 2021
This Pocketmine-MP plugin is a plugin including a complete faction system.

SimpleFaction Simple faction plugin replacing FactionsPro which is no longer updated. Commands Command Name Command Description Available for /f help

Ayzrix 33 Dec 19, 2022
OrangeHRM is a comprehensive Human Resource Management (HRM) System that captures all the essential functionalities required for any enterprise.

OrangeHRM Open Source Application OrangeHRM is a comprehensive Human Resource Management (HRM) System that captures all the essential functionalities

OrangeHRM 452 Jan 4, 2023
Internal Quality Assurance Cell, IQAC Project Data Capturing System.

IQAC-DCS-2021 Added AQAR Directory with template pages! Old Readme Internal Quality Assurance Cell, IQAC Project Data Capturing System. Fork Repo Clon

Kashif Raza 4 Jan 4, 2022
Spawns system for PocketMine-MP

[] SimpleSpawns | v1.0.0 Spawns system for PocketMine-MP, written in PHP-7.4 and only supports PocketMine-MP 3.0.0 ⚡ Features: Put the spawn zone wher

Jony 3 Dec 5, 2021
A plugin that creates a level system linked to chatting for PocketMine-MP!

ChatLevel A plugin that creates a level system linked to chatting for PocketMine-MP! Issues You can report bugs by simply clicking me! Support You can

Oğuzhan 2 Oct 28, 2021
ITC Expenses Management System

ITC Expenses Management Installation The installation of this project requires composer

Ahmad Mustapha 5 Dec 7, 2021
[virion] It Implements Simple Using Form Library System

SimpleForm [virion] It Implements Simple Using Form Library System How To Use First, declare the use statement. use AidenKR\SimpleForm\SimpleForm; use

Aiden 2 Sep 18, 2021
A system for auto-decorating models with presenters

Laravel Auto Presenter 7 This package automatically decorates objects bound to views during the view render process. Features Automatically decorate o

Laravel Auto Presenter 754 Dec 21, 2022
Ticket system

FULL STACK FP Required - jquery, fontawesome, bootstrap, php jquery files included () fontawesome () Boostrap (4) Php > 7 MySQL database () Deploy Dow

Rodrigo Zárate Algecira 1 Oct 26, 2021
Contains a few tools usefull for making your test-expectations agnostic to operating system specifics

PHPUnit Tools to ease cross operating system Testing make assertEquals* comparisons end-of-line (aka PHP_EOL) character agnostic Make use of EolAgnost

Markus Staab 1 Jan 3, 2022