{"id":23424459,"url":"https://github.com/anamarijapapic/teamstructor","last_synced_at":"2026-04-07T21:31:45.276Z","repository":{"id":152720538,"uuid":"619555830","full_name":"anamarijapapic/teamstructor","owner":"anamarijapapic","description":"University undergraduate final thesis. Web application that serves as a teamwork platform. Provides team management, team projects, project discussion and access to project resources. 👥💬📁","archived":false,"fork":false,"pushed_at":"2023-06-18T12:57:21.000Z","size":813,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-07T18:08:59.033Z","etag":null,"topics":["docker","jetstream","laravel","livewire","mysql","tailwindcss","tall-stack"],"latest_commit_sha":null,"homepage":"https://urn.nsk.hr/urn:nbn:hr:228:967997","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anamarijapapic.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-03-27T11:26:56.000Z","updated_at":"2023-11-30T17:31:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"f915f096-5873-48fd-bd51-e6c237e1813c","html_url":"https://github.com/anamarijapapic/teamstructor","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anamarijapapic/teamstructor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anamarijapapic%2Fteamstructor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anamarijapapic%2Fteamstructor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anamarijapapic%2Fteamstructor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anamarijapapic%2Fteamstructor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anamarijapapic","download_url":"https://codeload.github.com/anamarijapapic/teamstructor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anamarijapapic%2Fteamstructor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31530641,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","jetstream","laravel","livewire","mysql","tailwindcss","tall-stack"],"created_at":"2024-12-23T04:18:02.735Z","updated_at":"2026-04-07T21:31:45.093Z","avatar_url":"https://github.com/anamarijapapic.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Teamstructor\n\n## Table of Contents\n\n* [General Info](#general-info)\n* [Documentation](#documentation)\n* [Technologies](#technologies)\n* [Database Model](#database-model)\n* [Getting Started](#getting-started)\n* [Credits](#credits)\n\n## General Info\n\nTeamstructor 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.\n\n\u003e Project created as a university undergraduate final thesis:  \n\u003e SRC146 - Final Thesis  \n\u003e University of Split - University Department of Professional Studies\n\n## Documentation\n\nVisit [Teamstructor Docs](https://github.com/anamarijapapic/teamstructor-docs) GitHub repository or preview compiled thesis paper directly at [teamstructor-docs/papic_zavrsni.pdf](https://github.com/anamarijapapic/teamstructor-docs/blob/main/papic_zavrsni.pdf).  \n\n[![Teamstructor Docs](https://github-readme-stats.vercel.app/api/pin/?username=anamarijapapic\u0026repo=teamstructor-docs\u0026show_owner=true\u0026theme=transparent)](https://github.com/anamarijapapic/teamstructor-docs)  \n\n## Technologies\n\n![Laravel](https://img.shields.io/badge/laravel-%23FF2D20.svg?style=for-the-badge\u0026logo=laravel\u0026logoColor=white)\n![PHP](https://img.shields.io/badge/php-%23777BB4.svg?style=for-the-badge\u0026logo=php\u0026logoColor=white)  \n![Livewire](https://img.shields.io/badge/Livewire-4E56A6.svg?style=for-the-badge\u0026logo=Livewire\u0026logoColor=white)  \n![TailwindCSS](https://img.shields.io/badge/Tailwind%20CSS-06B6D4.svg?style=for-the-badge\u0026logo=Tailwind-CSS\u0026logoColor=white)  \n\n![MySQL](https://img.shields.io/badge/mysql-%2300f.svg?style=for-the-badge\u0026logo=mysql\u0026logoColor=white)\n![phpMyAdmin](https://img.shields.io/badge/phpMyAdmin-6C78AF.svg?style=for-the-badge\u0026logo=phpMyAdmin\u0026logoColor=white)  \n![Nginx](https://img.shields.io/badge/nginx-%23009639.svg?style=for-the-badge\u0026logo=nginx\u0026logoColor=white)  \n![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge\u0026logo=docker\u0026logoColor=white)  \n\n![Composer](https://img.shields.io/badge/Composer-885630.svg?style=for-the-badge\u0026logo=Composer\u0026logoColor=white)\n![NPM](https://img.shields.io/badge/NPM-%23CB3837.svg?style=for-the-badge\u0026logo=npm\u0026logoColor=white)  \n\n![Visual Studio Code](https://img.shields.io/badge/Visual%20Studio%20Code-0078d7.svg?style=for-the-badge\u0026logo=visual-studio-code\u0026logoColor=white) \n\n## Database Model\n\n![Simple Database Model](https://github.com/anamarijapapic/teamstructor/assets/92815435/99f9a28a-cef9-481b-a22c-34f4127f8fbe)  \n![Database ER Diagram](https://github.com/anamarijapapic/teamstructor/assets/92815435/f6efeebc-bf93-41d1-920d-52bc87e6459f)  \n\n## Getting Started\n\n### Requirements\n\nYou should have the following installed with respective minimal versions:\n\n- [Docker Desktop](https://www.docker.com/) (Docker Engine + Docker Compose V2)\n- [Node.js](https://nodejs.org/en/) 18.x LTS bundled with npm\n\n### Running the Application\n\n1. Install and update all the requirements above\n2. Clone the repo: `git clone git@github.com:anamarijapapic/teamstructor.git`\n3. Copy `.env.example` to `.env`\n4. Copy `src/teamstructor-app/.env.example` to `src/teamstructor-app/.env`\n5. Use Node.js version defined in `.nvmrc` file by running: `nvm use`\n6. Install all JS dependencies by running: `npm install`\n7. Install JS dependencies by running: `npm install` from `src/teamstructor-app/` directory\n8. Append the line `127.0.0.1   teamstructor.test` to your `/etc/hosts` file\n9. Generate your local certificate (setup HTTPS) by running: `npm run addcert`\n10. Do a initial build of the website assets by running: `npm run build` from `src/teamstructor-app/` directory\n11. Check that Docker Desktop is running, then build and start the local web server for the first time: `docker compose up`\n12. Install Composer dependencies: `docker compose exec teamstructor.test composer install`\n13. Generate application key: `docker compose exec teamstructor.test php artisan key:generate`\n14. Create symbolic link for storage: `docker compose exec teamstructor.test php artisan storage:link`\n15. Alter folder permissions for `src/teamstructor-app/storage` \u0026 `src/teamstructor-app/bootstrap` folders: `sudo chmod -R 777 src/teamstructor-app/storage/ src/teamstructor-app/bootstrap/`\n16. Open [MinIO](https://min.io/) (AWS S3 compatible file storage service) available at http://localhost:9000/ in your browser and login using default root credentials `minioadmin:minioadmin`\n - Create a bucket with bucket name `teamstructor-bucket` and change its access policy to `public`\n - Create access key and copy access key value to `AWS_ACCESS_KEY_ID` and secret key value to `AWS_SECRET_ACCESS_KEY` defined in `src/teamstructor-app/.env`\n17. Run database migrations \u0026 seed the database: `docker compose exec teamstructor.test php artisan migrate:fresh --seed`\n18. Open [https://teamstructor.test/](https://teamstructor.test/) in your browser\n19. Work with the code in the directory.\n\n### Working With the 'dev' Environment\n\n#### Artisan Commands\n\nTo run **Artisan** commands from terminal run command:  \n`docker compose exec teamstructor.test php artisan \u003ccommand\u003e`\n\n#### Running Tests\n\nYou can run tests by executing the `pest` command:  \n`docker compose exec teamstructor.test ./vendor/bin/pest`\n\n#### Useful Docker Commands\n\n- `docker compose up` starts the docker environment, you can stop it with a single `cmd/ctrl+c`\n- `docker compose build` re-builds all the containers\n- `docker compose stop` stops containers\n- `docker compose down` stops and removes the containers and their volumes\n- `docker ps` lists all running containers on the system, useful to track down ones that are unintentionally keeping the ports used.\n  Note: All commands must be run at the repo root directory.\n\n#### Managing the Database\n\nA DB administration tool, [phpMyAdmin](https://www.phpmyadmin.net), is available at http://localhost:8080/.\nYou can connect to MySQL yourself using the port `3306` on `localhost` from your host. Username and password is `root`.\n\n#### Testing Mail Sending\n\n[MailHog](https://github.com/mailhog/MailHog) Web UI, an email testing tool for developers, is available at http://localhost:8025/.\n\n## Credits\n\n* [Anamarija Papić](https://github.com/anamarijapapic)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanamarijapapic%2Fteamstructor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanamarijapapic%2Fteamstructor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanamarijapapic%2Fteamstructor/lists"}