https://github.com/anamarijapapic/teamstructor
University undergraduate final thesis. Web application that serves as a teamwork platform. Provides team management, team projects, project discussion and access to project resources. 👥💬📁
https://github.com/anamarijapapic/teamstructor
docker jetstream laravel livewire mysql tailwindcss tall-stack
Last synced: 3 months ago
JSON representation
University undergraduate final thesis. Web application that serves as a teamwork platform. Provides team management, team projects, project discussion and access to project resources. 👥💬📁
- Host: GitHub
- URL: https://github.com/anamarijapapic/teamstructor
- Owner: anamarijapapic
- Created: 2023-03-27T11:26:56.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-06-18T12:57:21.000Z (about 3 years ago)
- Last Synced: 2025-10-07T18:08:59.033Z (9 months ago)
- Topics: docker, jetstream, laravel, livewire, mysql, tailwindcss, tall-stack
- Language: PHP
- Homepage: https://urn.nsk.hr/urn:nbn:hr:228:967997
- Size: 794 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Teamstructor
## Table of Contents
* [General Info](#general-info)
* [Documentation](#documentation)
* [Technologies](#technologies)
* [Database Model](#database-model)
* [Getting Started](#getting-started)
* [Credits](#credits)
## General Info
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
## Documentation
Visit [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).
[](https://github.com/anamarijapapic/teamstructor-docs)
## Technologies











## Database Model


## Getting Started
### Requirements
You should have the following installed with respective minimal versions:
- [Docker Desktop](https://www.docker.com/) (Docker Engine + Docker Compose V2)
- [Node.js](https://nodejs.org/en/) 18.x LTS bundled with npm
### Running the Application
1. Install and update all the requirements above
2. Clone the repo: `git clone git@github.com:anamarijapapic/teamstructor.git`
3. Copy `.env.example` to `.env`
4. Copy `src/teamstructor-app/.env.example` to `src/teamstructor-app/.env`
5. Use Node.js version defined in `.nvmrc` file by running: `nvm use`
6. Install all JS dependencies by running: `npm install`
7. Install JS dependencies by running: `npm install` from `src/teamstructor-app/` directory
8. Append the line `127.0.0.1 teamstructor.test` to your `/etc/hosts` file
9. Generate your local certificate (setup HTTPS) by running: `npm run addcert`
10. Do a initial build of the website assets by running: `npm run build` from `src/teamstructor-app/` directory
11. Check that Docker Desktop is running, then build and start the local web server for the first time: `docker compose up`
12. Install Composer dependencies: `docker compose exec teamstructor.test composer install`
13. Generate application key: `docker compose exec teamstructor.test php artisan key:generate`
14. Create symbolic link for storage: `docker compose exec teamstructor.test php artisan storage:link`
15. 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/`
16. 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`
- Create a bucket with bucket name `teamstructor-bucket` and change its access policy to `public`
- 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`
17. Run database migrations & seed the database: `docker compose exec teamstructor.test php artisan migrate:fresh --seed`
18. Open [https://teamstructor.test/](https://teamstructor.test/) in your browser
19. Work with the code in the directory.
### Working With the 'dev' Environment
#### Artisan Commands
To run **Artisan** commands from terminal run command:
`docker compose exec teamstructor.test php artisan `
#### Running Tests
You can run tests by executing the `pest` command:
`docker compose exec teamstructor.test ./vendor/bin/pest`
#### Useful Docker Commands
- `docker compose up` starts the docker environment, you can stop it with a single `cmd/ctrl+c`
- `docker compose build` re-builds all the containers
- `docker compose stop` stops containers
- `docker compose down` stops and removes the containers and their volumes
- `docker 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.
#### Managing the Database
A DB administration tool, [phpMyAdmin](https://www.phpmyadmin.net), 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`.
#### Testing Mail Sending
[MailHog](https://github.com/mailhog/MailHog) Web UI, an email testing tool for developers, is available at http://localhost:8025/.
## Credits
* [Anamarija Papić](https://github.com/anamarijapapic)