Giter VIP home page Giter VIP logo

anamarijapapic / teamstructor Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 813 KB

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

Home Page: https://urn.nsk.hr/urn:nbn:hr:228:967997

PHP 52.01% JavaScript 0.28% Blade 47.45% Dockerfile 0.25% CSS 0.01%
laravel docker mysql tall-stack livewire tailwindcss jetstream

teamstructor's Introduction

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

teamstructor's People

Contributors

anamarijapapic avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.