Skip to content

University undergraduate final thesis. Web application that serves as a teamwork platform. Provides team management, team projects, project discussion and access to project resources. πŸ‘₯πŸ’¬πŸ“

Notifications You must be signed in to change notification settings

anamarijapapic/teamstructor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Teamstructor

Table of Contents

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 GitHub repository or preview compiled thesis paper directly at teamstructor-docs/papic_zavrsni.pdf.

Teamstructor Docs

Technologies

Laravel PHP
Livewire
TailwindCSS

MySQL phpMyAdmin
Nginx
Docker

Composer NPM

Visual Studio Code

Database Model

Simple Database Model
Database ER Diagram

Getting Started

Requirements

You should have the following installed with respective minimal versions:

Running the Application

  1. Install and update all the requirements above
  2. Clone the repo: git clone [email protected]: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 (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
  1. Run database migrations & seed the database: docker compose exec teamstructor.test php artisan migrate:fresh --seed
  2. Open https://teamstructor.test/ in your browser
  3. 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 <command>

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, 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 Web UI, an email testing tool for developers, is available at http://localhost:8025/.

Credits

About

University undergraduate final thesis. Web application that serves as a teamwork platform. Provides team management, team projects, project discussion and access to project resources. πŸ‘₯πŸ’¬πŸ“

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages