Deploy Bot
Deploy SciANN Material Identification app (Django + React + Vite)
7ba882a
import { useState } from 'react'
import axios from 'axios'
import './App.css'
export default function App() {
const [param1, setParam1] = useState('')
const [param2, setParam2] = useState('')
const [result, setResult] = useState(null)
const [loading, setLoading] = useState(false)
const [error, setError] = useState('')
const handleSubmit = async (e) => {
e.preventDefault()
setLoading(true)
setError('')
setResult(null)
try {
const response = await axios.post('/api/predict/', {
param1: parseFloat(param1),
param2: parseFloat(param2)
})
setResult(response.data)
} catch (err) {
setError('Error during material identification.')
console.error(err)
} finally {
setLoading(false)
}
}
return (
<div className="container">
<header>
<h1>Material Identification: Talc</h1>
<p>Based on SciANN and Hugging Face</p>
</header>
<div className="card">
<h2>Input Parameters</h2>
<form onSubmit={handleSubmit}>
<div className="input-group">
<label>Parameter 1 (Stress):</label>
<input
type="number"
step="0.01"
value={param1}
onChange={(e) => setParam1(e.target.value)}
required
/>
</div>
<div className="input-group">
<label>Parameter 2 (Strain):</label>
<input
type="number"
step="0.01"
value={param2}
onChange={(e) => setParam2(e.target.value)}
required
/>
</div>
<button type="submit" disabled={loading}>
{loading ? 'Analyzing...' : 'Identify Material'}
</button>
</form>
{error && <p className="error">{error}</p>}
{result && (
<div className="result">
<h3>Result</h3>
<p><strong>Material:</strong> {result.material}</p>
<p><strong>Confidence:</strong> {(result.confidence * 100).toFixed(2)}%</p>
{result.properties && (
<div>
<h4>Predicted Properties</h4>
<p>Stress: {result.properties.stress.toFixed(4)}</p>
<p>Strain: {result.properties.strain.toFixed(4)}</p>
</div>
)}
</div>
)}
</div>
</div>
)
}