Полноценное приложение для управления задачами (To-Do) с использованием Golang для бэкенда, React с Semantic UI для фронтенда и MongoDB в качестве базы данных. Этот проект позволяет пользователям создавать, обновлять и удалять задачи, предлагая удобный интерфейс для управления делами.
- Функции
- Стек технологий
- Структура проекта
- Установка
- Конфигурация
- Запуск
- API Эндпоинты
- Использование Docker
- Вклад в проект
- Лицензия
- Создание, чтение, обновление и удаление задач (CRUD).
- Постоянное хранение данных в MongoDB.
- Адаптивный интерфейс на базе React и Semantic UI.
- Бэкенд: Golang
- Фронтенд: React, Semantic UI
- База данных: MongoDB (локальная)
Go-To-Do-App/
├── client/ # Фронтенд на React
│ ├── public/
│ └── src/
│ ├── components/ # Повторно используемые компоненты интерфейса
│ ├── pages/ # Основные страницы
│ ├── To-Do-List.js # API-сервисы
│ └── App.js # Основной файл приложения
├── server/ # Бэкенд на Golang
│ ├── handlers/ # Обработчики API маршрутов
│ ├── models/ # Модели данных
│ ├── main.go # Основной файл сервера
│ └── router # Настройка роутера
└── README.md
└── docker-compose.yml
└── .env
1. Клонирование репозитория
git clone https://github.com/Meruyert98/golang-react-todo.git
cd golang-react-todo2. Настройка бэкенда
- Перейдите в директорию server:
cd server- Установите зависимости для Go (если есть) и соберите сервер:
go mod download
go build3. Настройка фронтенда
- Перейдите в директорию client:
cd ../client- Установите зависимости для Node:
npm install4. Настройка MongoDB Убедитесь, что MongoDB установлена и запущена локально на порту 27017.
Конфигурация бэкенда
- В директории
serverсоздайте файл.envсо следующими переменными окружения:
DB_URI=mongodb://localhost:27017
DB_NAME=todo
DB_COLLECTION_NAME=tasksКонфигурация фронтенда
Настройте конечную точку API на фронтенде в файле client/src/services/api.js, указав базовый URL для сервера.
1. Запуск бэкенда
- Из директории
serverзапустите Go сервер:
go run main.goСервер будет запущен на http://localhost:8080.
2. Запуск фронтенда
- Из директории client запустите React приложение:
npm startПриложение будет доступно по адресу http://localhost:3000.
3. Открытие приложения Откройте браузер и перейдите по адресу http://localhost:3000 для использования приложения.
| Метод | Эндпоинт | Описание |
|---|---|---|
| GET | /api/todos | Получить все задачи |
| POST | /api/todos | Создать новую задачу |
| PUT | /api/todos/:id | Обновить задачу |
| DELETE | /api/todos/:id | Удалить задачу |
Для удобства развертывания создадим Dockerfile и Docker Compose для всего приложения.
Dockerfile для бэкенда Создайте файл Dockerfile в директории server с таким содержанием:
# Dockerfile для Go сервера
FROM golang:1.20-alpine
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN go build -o main .
EXPOSE 8080
CMD ["./main"]Dockerfile для фронтенда Создайте файл Dockerfile в директории client с таким содержанием:
# Dockerfile для React клиента
FROM node:18-alpine
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["npm", "start"]Docker Compose Создайте файл docker-compose.yml в корневой директории проекта с таким содержанием:
version: '3.8'
services:
backend:
build: ./server
ports:
- "8080:8080"
environment:
- DB_URI=mongodb://mongodb:27017
- DB_NAME=todo
- DB_COLLECTION_NAME=tasks
depends_on:
- mongodb
frontend:
build: ./client
ports:
- "3000:3000"
environment:
- REACT_APP_API_URL=http://localhost:8080
mongodb:
image: mongo:latest
ports:
- "27017:27017"
volumes:
- mongo-data:/data/db
volumes:
mongo-data:Запуск с Docker Compose
- Убедитесь, что Docker установлен и запущен.
- Выполните команду для запуска всех сервисов:
docker-compose up --buildОткройте http://localhost:3000 в браузере, чтобы начать работу с приложением.