mirror of
https://gitlab.fabcity.hamburg/software/voting-tool.git
synced 2026-08-09 15:30:22 +00:00
A web application to vote and rank ideas, e.g. for innovation challenges. Dev Deployment: https://dev.hosting170690.ae864.netcup.net/
- TypeScript 65%
- PHP 34.6%
- Blade 0.4%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .husky | ||
| app | ||
| bootstrap | ||
| config | ||
| database | ||
| public | ||
| resources | ||
| routes | ||
| storage | ||
| tests | ||
| types | ||
| .editorconfig | ||
| .env.example | ||
| .env.testing | ||
| .gitattributes | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| .prettierignore | ||
| .prettierrc.json | ||
| .styleci.yml | ||
| artisan | ||
| composer.json | ||
| composer.lock | ||
| docker-compose.yml | ||
| LICENSE | ||
| package-lock.json | ||
| package.json | ||
| phpunit.xml | ||
| README.md | ||
| server.php | ||
| tailwind.config.js | ||
| tsconfig.json | ||
| webpack.mix.js | ||
| yarn.lock | ||
voting-tool
This is a web application to vote and rank ideas which can be submitted by users. This platform can be used to host "innovation challenges". It is based on an existing, older platform called Voodle.
Features:
- Voting according to the swiss system – the app always presents pairs of two ideas from which the user can pick their favorite
- Supports multiple, independent challenges at the same time
- Registered users can submit their ideas for each challenge and describe it with Markdown and upload their own pictures
- Voting is accessible for guests (without user account)
- Users can comment on other ideas
- E-Mail notifications for important events (submission was approved, comment received, etc.)
- Ideas can be moderated/need to be approved before they will be publicly visible
Tech Stack
This application is a classical "three tier" web application: it consist of a JavaScript frontend (running in the browser), a PHP backend and a relational database (both running on the server). We use the following technologies:
- PHP Backend: Laravel & Inertia
- Database: MySQL
- Frontend: React & TailwindCSS
Local/Development setup via Docker
- Clone the repository and make sure your Docker is running
- Install composer dependencies either by running
composer install(if you have Composer installed locally) or by runningdocker run --rm -u "$(id -u):$(id -g)" -v $(pwd):/var/www/html -w /var/www/html laravelsail/php81-composer:latest composer install --ignore-platform-reqs - Run
./vendor/bin/sail upin the repo folder to start the backend - Run
yarn installto install all dependencies from thepackage.json - Run
yarn run hotto start the frontend
To seed fresh data, run:
./vendor/bin/sail artisan migrate:fresh --seed
The default admin user is innovation@fabcity.hamburg and the default password is test1234.
References
- All Auth-related Controllers are generated via Breeze (Laravel Starter Kit)