This project is a comprehensive React-based application designed to visualize the properties and trends of elements from the periodic table. It specifically includes visualizations and features for actinoids, atomic radii, electronegativity, ionization energy, melting and boiling points, and a quiz feature for learning.
- Features
- Installation
- Usage
- Technologies Used
- File Structure
- Future Enhancements
- Contributing
- License
- Interactive Grid: A fully interactive periodic table grid.
- Element Details: Click on any element to view detailed information such as:
- Atomic Number
- Symbol
- Electronegativity
- Oxidation States
- Type of Element
- Highlight Actinoids and Lanthanoids: Dedicated sections for exploring these element groups.
- Detailed View: Click on any element in the grid to see properties like atomic number, symbol, electronegativity, and oxidation states.
-
Atomic Radii Visualization:
- Interactive line chart using
react-chartjs-2
. - Clickable elements with atomic radius details.
- Interactive line chart using
-
Electronegativity Trends:
- Line graph showcasing electronegativity values for elements.
- Customizable axis labels and tooltip details.
-
Ionization Energy:
- Bar chart displaying multiple ionization energies (1st, 2nd, 3rd, etc.).
- Dual Y-axes to handle values with varying magnitudes.
-
Melting and Boiling Points:
- Bar chart visualization of melting and boiling points of elements.
- Interactive charts with hover details.
- Three.js Integration:
- 3D visualization of atomic structure using Three.js.
- Features:
- Protons, neutrons, and electrons represented as spheres.
- Electron orbits with dynamic animations.
- Interactive spark effects triggered by mouse movement.
- Periodic Table Quiz: Test your knowledge about elements and periodic trends.
- Difficulty Levels: Questions are categorized into easy, medium, and hard levels.
- Node.js and npm/yarn installed on your machine.
- Clone the repository:
git clone <repository-url>
- Navigate to the project directory:
cd periodic-table-visualization
- Install dependencies:
npm install
- Start the development server:
npm start
- Open the application in your browser at
http://localhost:3000
.
- Explore Elements: Click on any element in the periodic table or actinoids/lanthanoids grid to view detailed information.
- Visualize Trends: Use the interactive charts to study trends in atomic radii, electronegativity, ionization energies, and melting/boiling points.
- Experience 3D Atomic Model: Interact with the 3D atomic structure and observe electron animations and spark effects.
- Test Knowledge: Take quizzes to reinforce understanding of periodic trends and element properties.
- Frontend: React, Tailwind CSS
- Data Visualization: Chart.js, React Chart.js 2, Recharts
- 3D Graphics: Three.js
- Routing: React Router DOM
- Animations: Typewriter.js
src/
├── components/
│ ├── Actinoids.js # Actinoids visualization
│ ├── Lanthanoids.js # Lanthanoids visualization
│ ├── AtomicRadii.js # Atomic radii visualization
│ ├── ElectronegativityGraph.js # Electronegativity trends
│ ├── IonizationEnergyBarGraph.js # Ionization energy trends
│ ├── MeltandBoil.js # Melting and boiling points
│ ├── ThreeJSBackground.js # 3D atomic model
├── data/
│ └── PeriodicTable.js # Data for periodic table elements
├── styles/
│ └── App.css # Custom styles
└── App.js # Main app entry point
- Additional Element Groups:
- Include detailed grids for transition metals.
- Enhanced 3D Model:
- Add interactive camera controls and better particle effects.
- Trend Comparisons:
- Allow users to compare multiple trends on the same graph.
- Periodic Table Quiz:
- Add timed challenges and scoreboards.
- Accessibility Improvements:
- Improve ARIA roles and keyboard navigation support.
Contributions are welcome! Follow these steps to contribute:
- Fork the repository.
- Create a feature branch:
git checkout -b feature/your-feature-name
- Commit your changes:
git commit -m "Add your message here"
- Push to the branch:
git push origin feature/your-feature-name
- Create a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
- Inspired by the need for interactive educational tools.
- Special thanks to contributors and the open-source community for their support.