Skip to content

goldapple-ce/CropDoctor

 
 

Repository files navigation

한국어 | English

CropDoctor

D8771DDC-42B5-42E6-922B-01C0443DB602

🍀 Introduction

Cropdoctor is a service that diagnosis the disease of your crops and offers solutions that fit your disease.👩🏻‍🌾

📌 System Architecture

MacBook Pro 16_ - 1

📚 TECH STACKS

Frontend Backend Monitoring Database&Storage DevOps AI
























💻 Installation Process

Docker repository clone

git clone --recursive https://github.com/S-V-23-BootCamp-Team-F/docker.git

Set .env in the backend folder

SECRET_KEY = {Django SECRET_KEY}

# AWS S3 connect
AWS_ACCESS_KEY = {AWS_ACCESS_KEY}
AWS_SECRET_KEY = {AWS_SECRET_KEY}
AWS_REGION = {AWS_REGION}

# S3 Storages
S3_BUCKET_NAME = {S3_BUCKET_NAME}

MYSQL_NAME = {MYSQL_NAME}
MYSQL_USER = {MYSQL_USER}
MYSQL_PASSWORD = {MYSQL_PASSWORD}
MYSQL_HOST = {MYSQL_HOST}

Run Docker-compose

docker-compose up —build

🗂 Submodule Directories

FRONTEND
📦frontend
┣ 📂.github
┣ 📂dist
┣ 📂node_modules
┣ 📂public
┣ 📂src
┃ ┣ 📂components
┃ ┃ ┣ 📜Cropchart.tsx
┃ ┃ ┣ 📜DetailModalscreen.tsx
┃ ┃ ┣ 📜Hamnav.tsx
┃ ┃ ┣ 📜Historycard.tsx
┃ ┃ ┣ 📜LoadingPage.tsx
┃ ┃ ┣ 📜LogInPage.tsx
┃ ┃ ┣ 📜Longnav.tsx
┃ ┃ ┣ 📜Navbar.tsx
┃ ┃ ┣ 📜Periodchart.tsx
┃ ┃ ┣ 📜Periodline.tsx
┃ ┃ ┗ 📜SignupPage.tsx
┃ ┣ 📂fonts
┃ ┣ 📂images
┃ ┣ 📂pages
┃ ┃ ┣ 📜AbnomalResultPage.tsx
┃ ┃ ┣ 📜GetStart.tsx
┃ ┃ ┣ 📜HistoryPage.tsx
┃ ┃ ┣ 📜MainPage.tsx
┃ ┃ ┣ 📜NomalResultPage.tsx
┃ ┃ ┗ 📜StasticsPage.tsx
┃ ┣ 📂utils
┃ ┣ 📜App.css
┃ ┣ 📜App.tsx
┃ ┣ 📜Cookie.ts
┃ ┣ 📜index.css
┃ ┣ 📜main.tsx
┃ ┣ 📜media.css
┃ ┗ 📜vite-env.d.ts
┣ 📜.dockerignore
┣ 📜.git
┣ 📜.gitignore
┣ 📜Dockerfile
┣ 📜README.md
┣ 📜index.html
┣ 📜index.tsx
┣ 📜package-lock.json
┣ 📜package.json
┣ 📜postcss.config.cjs
┣ 📜tailwind.config.cjs
┣ 📜tsconfig.json
┣ 📜tsconfig.node.json
┗ 📜vite.config.ts
BACKEND
📦backend
┣ 📂.github
┣ 📂backend
┃ ┣ 📜__init__.py
┃ ┣ 📜asgi.py
┃ ┣ 📜celery.py
┃ ┣ 📜settings.py
┃ ┣ 📜urls.py
┃ ┗ 📜wsgi.py
┣ 📂members
┃ ┣ 📂migrations
┃ ┣ 📜__init__.py
┃ ┣ 📜admin.py
┃ ┣ 📜apps.py
┃ ┣ 📜models.py
┃ ┣ 📜serializer.py
┃ ┣ 📜tests.py
┃ ┣ 📜urls.py
┃ ┗ 📜views.py
┣ 📂plants
┃ ┣ 📂inference
┃ ┃ ┣ 📂models
┃ ┃ ┃ ┣ 📂hub
┃ ┃ ┃ ┣ 📂segment
┃ ┃ ┃ ┣ 📜__init__.py
┃ ┃ ┃ ┣ 📜common.py
┃ ┃ ┃ ┣ 📜experimental.py
┃ ┃ ┃ ┣ 📜tf.py
┃ ┃ ┃ ┣ 📜yolo.py
┃ ┃ ┃ ┣ 📜yolov5l.yaml
┃ ┃ ┃ ┣ 📜yolov5m.yaml
┃ ┃ ┃ ┣ 📜yolov5n.yaml
┃ ┃ ┃ ┣ 📜yolov5s.yaml
┃ ┃ ┃ ┗ 📜yolov5x.yaml
┃ ┃ ┣ 📂utils
┃ ┃ ┃ ┣ 📜__init__.py
┃ ┃ ┃ ┣ 📜activations.py
┃ ┃ ┃ ┣ 📜augmentations.py
┃ ┃ ┃ ┣ 📜autoanchor.py
┃ ┃ ┃ ┣ 📜autobatch.py
┃ ┃ ┃ ┣ 📜callbacks.py
┃ ┃ ┃ ┣ 📜dataloaders.py
┃ ┃ ┃ ┣ 📜downloads.py
┃ ┃ ┃ ┣ 📜general.py
┃ ┃ ┃ ┣ 📜loss.py
┃ ┃ ┃ ┣ 📜metrics.py
┃ ┃ ┃ ┣ 📜plots.py
┃ ┃ ┃ ┣ 📜torch_utils.py
┃ ┃ ┃ ┗ 📜triton.py
┃ ┃ ┣ 📜cucumber.pt
┃ ┃ ┣ 📜detect.py
┃ ┃ ┣ 📜export.py
┃ ┃ ┣ 📜grape.pt
┃ ┃ ┣ 📜paprika.pt
┃ ┃ ┣ 📜pepper.pt
┃ ┃ ┣ 📜strawberry.pt
┃ ┃ ┗ 📜tomato.pt
┃ ┣ 📂migrations
┃ ┣ 📜__init__.py
┃ ┣ 📜admin.py
┃ ┣ 📜apps.py
┃ ┣ 📜models.py
┃ ┣ 📜serializer.py
┃ ┣ 📜storagess.py
┃ ┣ 📜tasks.py
┃ ┣ 📜tests.py
┃ ┣ 📜urls.py
┃ ┗ 📜views.py
┣ 📂static
┣ 📜.env
┣ 📜.git
┣ 📜.gitignore
┣ 📜Dockerfile
┣ 📜README.md
┣ 📜manage.py
┗ 📜requirements.txt

Flowchart

flowchart_en drawio

🔍 Features

SignUp / Login page

  • This is a SignUp / Login page using JWT token.


Diagnostic/Diagnostic Results Page

  • It is a page that selects an image of a disease crop and diagnoses it with AI, and if it is a disease crop, it provides causes and solutions together.

history / history delete

  • With a function that is only available when logging in, you can collect crops that you have diagnosed by category.
  • You can check the detailed information of the selected crop and delete it.

Staticstics Page

2A005C2A-E092-4315-8DE9-7F42D3C72641

  • Statistics are shown based on Cropdoctor diagnostic data.
  • Statistics on the number of diseases by crop
    • It provides information on which diseases each crop has a lot in the form of a bar chart.
  • Monthly Disease Count Statistics
    • The crops selected in the category are provided in the form of a line graph of how the disease flows per month.

Responsive Web Pages

반응형

AI

AI used YoloV5, and the Precision-Confidence Curve and learning process and performance are as follows. 그림1

results (1)

The following photos are actually analyzed by AI. Group 101111

🖥️ Moniterings


Kibana Dashboard


Grafana Dashboard & Slack Alert


If the storage capacity exceeds 85%, Grafana sends an alarm to Slack.


Swagger

The use of Swagger for API documentation for Frontend and Backend communication. 스크린샷 2023-02-01 오후 6 03 44 (1)

👥 Our Team

Pictures
Name 강용민 이지윤 백동열 김유라 권찬영 황현성 이규현
Position Backend
DevOps
Frontend
Backend
DevOps
Frontend
Backend
Frontend
Backend
DevOps
AI
Backend
DevOps
Frontend
GitHub

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 57.1%
  • Dockerfile 42.9%