Teamstructor is a web application that serves as a teamwork platform. Users can form teams in which team members have access to team projects. Inside each project team members can discuss and store useful resources relevant for that project.
Project created as a university undergraduate final thesis:
SRC146 - Final Thesis
University of Split - University Department of Professional Studies
Visit Teamstructor Docs GitHub repository or preview compiled thesis paper directly at teamstructor-docs/papic_zavrsni.pdf.
You should have the following installed with respective minimal versions:
- Docker Desktop (Docker Engine + Docker Compose V2)
- Node.js 18.x LTS bundled with npm
- Install and update all the requirements above
- Clone the repo:
git clone [email protected]:anamarijapapic/teamstructor.git
- Copy
.env.example
to.env
- Copy
src/teamstructor-app/.env.example
tosrc/teamstructor-app/.env
- Use Node.js version defined in
.nvmrc
file by running:nvm use
- Install all JS dependencies by running:
npm install
- Install JS dependencies by running:
npm install
fromsrc/teamstructor-app/
directory - Append the line
127.0.0.1 teamstructor.test
to your/etc/hosts
file - Generate your local certificate (setup HTTPS) by running:
npm run addcert
- Do a initial build of the website assets by running:
npm run build
fromsrc/teamstructor-app/
directory - Check that Docker Desktop is running, then build and start the local web server for the first time:
docker compose up
- Install Composer dependencies:
docker compose exec teamstructor.test composer install
- Generate application key:
docker compose exec teamstructor.test php artisan key:generate
- Create symbolic link for storage:
docker compose exec teamstructor.test php artisan storage:link
- Alter folder permissions for
src/teamstructor-app/storage
&src/teamstructor-app/bootstrap
folders:sudo chmod -R 777 src/teamstructor-app/storage/ src/teamstructor-app/bootstrap/
- Open MinIO (AWS S3 compatible file storage service) available at http://localhost:9000/ in your browser and login using default root credentials
minioadmin:minioadmin
- Create a bucket with bucket name
teamstructor-bucket
and change its access policy topublic
- Create access key and copy access key value to
AWS_ACCESS_KEY_ID
and secret key value toAWS_SECRET_ACCESS_KEY
defined insrc/teamstructor-app/.env
- Run database migrations & seed the database:
docker compose exec teamstructor.test php artisan migrate:fresh --seed
- Open https://teamstructor.test/ in your browser
- Work with the code in the directory.
To run Artisan commands from terminal run command:
docker compose exec teamstructor.test php artisan <command>
You can run tests by executing the pest
command:
docker compose exec teamstructor.test ./vendor/bin/pest
docker compose up
starts the docker environment, you can stop it with a singlecmd/ctrl+c
docker compose build
re-builds all the containersdocker compose stop
stops containersdocker compose down
stops and removes the containers and their volumesdocker ps
lists all running containers on the system, useful to track down ones that are unintentionally keeping the ports used. Note: All commands must be run at the repo root directory.
A DB administration tool, phpMyAdmin, is available at http://localhost:8080/.
You can connect to MySQL yourself using the port 3306
on localhost
from your host. Username and password is root
.
MailHog Web UI, an email testing tool for developers, is available at http://localhost:8025/.