Skip to main content

Менеджер финансов на Laravel и VueJS — Старт проекта.

Давно я ничего не писал, а тут подумал, почему бы не совместить небольшой проект и руководство. Менеджер финансов будет отличным практическим примером для тех кто начал изучать Laravel и VueJs. Приложение будет неким персональным финансовым менеджером, в котором можно будет следить за личными расходами, фильтровать, сортировать транзакции с красивыми графиками.

Подготовка

Перед началом работы вам нужно установить на компьютер некий набор программного обеспечения.

  • node & npm (я использовал node 12.19.0, npm 6.14.8)
  • php 7.4/mysql если вы используете OpenServer/XAMPP
  • Docker & docker-compose, если вы используете докер

Шаг №1. Определяем требования

Поскольку проект небольшой, то и требования нам нет смысла разбирать очень досконально. Будет достаточно базовых механик работы с самой системой.

Основные требования к функционалу пользователя:

  • Авторизация/Аутентификация
  • Регистрация и подтверждение по почте
  • Добавление кошелька с указанной валютой
  • Добавление категорий
  • Добавление транзакций\удаление\редактирование
  • Просмотр транзакций с фильтрами\сортировкой по кошелькам\категориям\дате.
  • Графики для отображения расходов\доходов за неделю\месяц

Функциональные и инфраструктурные требования мы описывать не будем, так как проект довольно простой и рассчитан на новичков. Мы не будем рассматривать архитектурные решения, а будем использовать только то, что предоставляет нам документация по фреймворку.

Шаг №2. Установка laravel и настройка окружения

Для проекта я буду использовать docker в качестве окружения и OS Windows. Вы можете использовать мой конфиг докера или любой другой софт(OpenServer, Xampp, Homestead, Vagrant, и т.д.).

#Установка фреймворка Laravel

Инструкция по установке находится по адресу https://laravel.com/docs/8.x/installation#installing-laravel.

Я обычно устанавливаю через composer

composer create-project --prefer-dist laravel/laravel <тут название вашего проекта>

Если вы будете использовать docker, но у вас в системе не установлен php, тогда просто скачайте репозиторий laravel себе на компьютер и используйте его.

git clone [email protected]:laravel/laravel.git <тут название вашего проекта>

После скачивания файлов обязательно удалите папку .git в корне проекта

#Настройка окружения docker

Если вы используете для окружения OpenServer или другое по, этот шаг можете пропустить.

В корне проекта создаём файл docker-compose.yml со следующим содержимым:

version: '3.5'
services:
  nginx:
    image: nginx:alpine
    container_name: finances-nginx
    working_dir: /var/www/finances
    volumes:
      - ./:/var/www/finances
      - ./docker/nginx/finances.conf:/etc/nginx/conf.d/default.conf
    links:
      - php
    depends_on:
      - php
      - database
    ports:
      - 80:80

  php:
    container_name: finances-php
    build:
      context: ./docker
      dockerfile: php.docker
    volumes:
      - ./:/var/www/finances
    working_dir: /var/www/finances
    ports:
      - 9000:9000
    links:
      - database
    depends_on:
      - database

  database:
    image: mysql:latest
    container_name: finances-database
    command: --default-authentication-plugin=mysql_native_password
    environment:
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_DATABASE: finances
    ports:
      - 3306:3306


Создадим директорию docker, поместим в неё файл php.docker:

FROM php:7.4-fpm

RUN apt-get update && apt-get install -y libmcrypt-dev git libzip-dev zip default-mysql-client
RUN docker-php-ext-configure zip && docker-php-ext-install pdo_mysql zip

RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer


И еще одна директория с конфигом nginx — docker/nginx, файл — finances.conf

server {
    listen 80;
    server_name _;
    root /var/www/finances/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass php:9000;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

После создания и проверки конфигов, запускаем команду docker-compose up -d --build. Дожидаемся окончания выполнения команды и пробуем открыть в браузере адрес http://localhost. Если у вас открылась стандартная страница приветствия Laravel, значит вы все сделали правильно.

Если вы устанавливали laravel при помощи git, тогда нужно выполнить несколько действий:

  • скопируйте файл .env.example в корень проекта с новым именем .env
  • docker exec -it finances-php composer install.
  • docker exec -it finances-php php artisan key:generate

#Настройка окружения OpenServer

Папку проекта нужно поместить в директорию domains. Далее переходим в Настройки -> Домены, управление доменами выбираем Ручное управление + Автонастройка/Ручное управление. Далее нажимаем на кнопку Добавить и добавляем ваш домен с корневой папкой public.

Примерно такой же принцип и для других систем, более подробно о настройках описано в официальной документации — https://laravel.com/docs/8.x#web-server-configuration.

Шаг №3. Установка VueJs

Достаточно выполнить команду

  • npm install vue —save

Завершение

Открываем страницу http://localhost и видим:

laravel менеджер финансов

На этом установка Laravel/VueJs и настройка окружения закончена. В следующей статье мы создадим аутентификацию/регистрацию на стороне бекенда и фронтенда.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *