oss-slu / DigitalBonesBox

This project is a Web App project aims to convert an existing PowerPoint-based educational tool into an interactive, mobile-friendly web application.
MIT License
1 stars 4 forks source link

Create functional project structure #12

Open kate-holdener opened 2 months ago

kate-holdener commented 2 months ago

Before the team can start implementing specific issues, the project needs to have a starting point. Looks like you've decided on using React (based on what I saw in a pull request comment). Please generated a basic React project structure, where the team can start plugging in different components. Here's a quick reference for how to start a react project: https://react.dev/learn/start-a-new-react-project.

If the team is not using React, generate the project structure for whatever framework you decide to use.

kate-holdener commented 2 months ago

Here's a suggesting for the application's landing page (as a starting point). The details and styling can be adjusted later, but this will give a team a place to begin.

import React, { useState } from 'react';
import { Search } from 'lucide-react';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Input } from '@/components/ui/input';
import { Button } from '@/components/ui/button';

const BoneEducationApp = () => {
  const [searchTerm, setSearchTerm] = useState('');

  const handleSearch = (e) => {
    e.preventDefault();
    // Implement search functionality here
    console.log('Searching for:', searchTerm);
  };

  return (
    <div className="container mx-auto p-4">
      <h1 className="text-3xl font-bold mb-6">Human Bone Education</h1>

      <form onSubmit={handleSearch} className="mb-6">
        <div className="flex">
          <Input 
            type="text" 
            placeholder="Search for bones..." 
            value={searchTerm}
            onChange={(e) => setSearchTerm(e.target.value)}
            className="flex-grow"
          />
          <Button type="submit" className="ml-2">
            <Search className="mr-2 h-4 w-4" /> Search
          </Button>
        </div>
      </form>

      <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
        <Card>
          <CardHeader>
            <CardTitle>Skeletal System Overview</CardTitle>
          </CardHeader>
          <CardContent>
            <p>Learn about the human skeletal system and its functions.</p>
            <Button className="mt-2">Explore</Button>
          </CardContent>
        </Card>
        <Card>
          <CardHeader>
            <CardTitle>Bone Categories</CardTitle>
          </CardHeader>
          <CardContent>
            <p>Discover different types of bones in the human body.</p>
            <Button className="mt-2">View Categories</Button>
          </CardContent>
        </Card>
        <Card>
          <CardHeader>
            <CardTitle>Interactive 3D Model</CardTitle>
          </CardHeader>
          <CardContent>
            <p>Explore an interactive 3D model of the human skeleton.</p>
            <Button className="mt-2">Launch 3D Model</Button>
          </CardContent>
        </Card>
      </div>

      <div className="mt-6">
        <h2 className="text-2xl font-semibold mb-4">Premium Features</h2>
        <Card>
          <CardHeader>
            <CardTitle>Bone Quizzes</CardTitle>
          </CardHeader>
          <CardContent>
            <p>Test your knowledge with our comprehensive bone quizzes.</p>
            <Button className="mt-2">Upgrade to Premium</Button>
          </CardContent>
        </Card>
      </div>
    </div>
  );
};

export default BoneEducationApp;

This is what that code produces

Screenshot 2024-09-19 at 1 24 53 PM

Disclosure: I used claude.ai to generate the source code and the preview image. Because why not!