Source code and install instructions are in English. Documentation and excersices currently are available in German only.
InstaHub is a social network for educational purpose only. Students can create their own social network as a database admin. They learn basics about working in a software project, creating and managing a database, querying (SQL SELECT) and editing (SQL INSERT, UPDATE and DELETE).
This project aims to help students develop a general technical understanding of social networks. As result, they will be able to discuss sinjects as big data and information privacy.
Live Demo: https://instahub.org/
Read more (only in German): https://blog.wi-wissen.de/
Many thanks and respect to:
-
Photos by pixabay (CC0)
-
Face images by unsplash.com (CC0)
-
Fake Ad images based on unsplash.com (CC0)
- Have min. PHP 8.3
- Download composer https://getcomposer.org/download/
- Download npm https://nodejs.org/
- Download git https://git-scm.com/downloads
- Download XAMMP: https://www.apachefriends.org/download.html
- (Optional) Download and extract cmder mini: https://github.com/cmderdev/cmder/releases/download/v1.1.4.1/cmder_mini.zip
- Update windows environment variable path to point to your php install folder (inside XAMMP installation dir) (here is how you can do this http://stackoverflow.com/questions/17727436/how-to-properly-set-php-environment-variable-to-run-commands-in-git-bash)
docker-compose exec mariadb bash
mysql -u root -p
# default: password
GRANT ALL PRIVILEGES ON *.* TO 'sail'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
- Create a local database named
instahub
with encoding utf8_general_ci - Create user
instahub
and grant all rights oninstahub
and for creating databases - cd to your local target folder and clone remote project:
git clone git://github.com/wi-wissen/instahub.git
- Rename
.env.example
file to.env
inside your project root and fill in the database information. (windows won't let you do that, so you have to use Notepad++ or open your console, cd your project root directory and runmv .env.example .env
) - Edit
.env
APP_ENV=production
(Intest
Teacher will be activated automatically.)APP_DEBUG=false
- enable only temporaly for debugging!DB_*
- if you want another database than MySQL, you have to edit source code.DB_USERNAME
- user for databaseDB_PASSWORD
- passwort for databaseMAIL_*
- mail provider for notification of new teachers and resetting passworts (admin accounts may reset passworts without sending a mail)
- Open the console and cd to your project root directory
- Run
composer install
orphp composer.phar install
(Howto install composer) Optional: Just to be safe or if an error occur on bootup runphp artisan config:clear
- You may need to configure some permissions. Directories within the
storage
and thebootstrap/cache
directories should be writable by your web server - Run
php artisan storage:link
- Run
php artisan key:generate
- Run
php artisan migrate
- Run
php artisan migrate --path=/database/migrations/create/users
- Configure your top-level domain and all subdomains (wildcard) to point to the
public
directory - Visit website and create first teacher (ignore error after creating, thats okay cause you are the first).
- In the
user
table of your database, manually set the attributeis_active
to1
androle
toadmin
. Now your user is admin and may manage other accounts.
I recomend to add a cronjob to your system: * * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
Then InstaHub will delete old analytic database files each night.
php artisan migrate
php artisan migrate:hubs
Thank you for considering contributing to the InstaHub! Create a pull request or contact me.
InstaHub used parts of Laragram from itsshady101