diff --git a/src/Dockerfile b/src/Dockerfile new file mode 100644 index 0000000..042b2ca --- /dev/null +++ b/src/Dockerfile @@ -0,0 +1,29 @@ +# Use an official Node runtime as the base image +FROM node:14 as build + +# Set the working directory in the container +WORKDIR /app + +# Copy package.json and package-lock.json +COPY package*.json ./ + +# Install dependencies +RUN npm install + +# Copy the rest of the application code +COPY . . + +# Build the app +RUN npm run build + +# Use nginx to serve the static files +FROM nginx:alpine + +# Copy the build output to replace the default nginx contents +COPY --from=build /app/build /usr/share/nginx/html + +# Expose port 80 +EXPOSE 80 + +# Start nginx +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/src/components/Admin.js b/src/components/Admin.js index 3a2e68e..ed13972 100644 --- a/src/components/Admin.js +++ b/src/components/Admin.js @@ -17,13 +17,15 @@ import { Alert, Container, Box, - TextField + TextField, + Tab } from '@mui/material'; export default function Admin() { const [users, setUsers] = useState([]); const [username, setUsername] = useState(''); + const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const navigate = useNavigate(); const fileInputRef = useRef(null); @@ -59,13 +61,15 @@ export default function Admin() { try { const response = await axios.post(`${process.env.REACT_APP_API_URL}/admin/user`, { username, - password + password, + email }, { headers: { Authorization: `Bearer ${localStorage.getItem('token')}` } }); setUsers([...users, response.data]); setUsername(''); setPassword(''); + setEmail(''); } catch (error) { console.error(error); } @@ -158,6 +162,13 @@ export default function Admin() { onChange={(e) => setPassword(e.target.value)} sx={{ mr: 2 }} /> + setEmail(e.target.value)} + sx={{ mr: 2 }} + /> @@ -167,14 +178,18 @@ export default function Admin() { + ID Username + Email Actions {users.map(user => ( - {user.username} + {user.ID} + {user.username} + {user.email}