How sahrior/10-day-10-react-projects works
1. This repository is a collection of standalone React mini-apps, not a single integrated product. Each project lives in its own folder with its own Vite setup, dependencies, and source tree, so there is no shared runtime or cross-project code path.
2. The common architecture across nearly all projects is the same: index.html loads the app shell, src/main.jsx mounts React, and src/App.jsx is the top-level composition point. Styling is usually local to the project through src/index.css, src/App.css, or CSS modules.
3. The main technical stack is React + Vite + plain JavaScript, with some projects using CSS modules and a few using a more componentized folder layout. The repo is front-end only in most cases; backend concerns are mostly absent except for the Firebase-backed contact app.
4. Several projects are simple landing-page or marketing UIs with very shallow architecture. Examples include Brand_Page, Responsive_Navbar, Foody_zone, Car_Service, and BMI_Calculator. Their structure is usually a small set of presentational components like navbar, hero, header, or section blocks.
5. A second pattern is navigation-centric single-page apps where the main boundary is “shared layout + page components.” Car_Service has a Navbar plus page components for Home, OurServices, Careers, and ContactUs. My shop and app also follow this pattern with a navbar, page views, and reusable cards/search results.
6. The most stateful app in the set is Dice_Game. Its architecture is split into gameplay subsystems: score/total tracking, number selection, dice rolling, rules display, and start/gameplay states. The component tree suggests a central game state in App.jsx passed down to smaller UI units.
7. Expense_Tracker is another state-heavy project, organized around financial summaries and input/listing flows. It separates earning and expense concerns into dedicated components, with totals and list components acting as derived views over the entered data.
8. My shop is the clearest example of a data-driven UI. Static product data lives in src/data/products.js, then flows into Productcard and Homecard components, while pages like Home, Cart, and Contact represent the main user navigation boundaries.
9. Contact_Us_Page/Contact_us is more componentized than the simpler projects. It splits the UI into Navigation, ContactHeader, ContactForm, and Button, with CSS modules keeping styles scoped to each component boundary.
10. Contact_App_Firebase is the only project with an obvious external service boundary. Its src/config/firebase.js indicates a Firebase integration layer, and App.jsx likely sits above that config to connect UI interactions with cloud-backed contact data.
11. Some projects are intentionally minimal and serve as practice exercises rather than full applications. Student_Managment, Todo_List, Project5/app, and Project7/BMI_Calculator appear to have smaller component footprints and likely keep most logic inside App.jsx with a few supporting components.
12. From an architecture-diagram perspective, the most important boundary is per-project isolation: each folder is a self-contained front-end app with its own build pipeline, assets, and UI composition. Inside each app, the key flow is typically main.jsx -> App.jsx -> feature components -> local data/assets, with only the Firebase project crossing into an external backend service.
Main entry points: GamePlay.jsx Gameplay · src/App.jsx My Shop · src/App.jsx Contact Us · src/App.jsx Expense Tracker
Components 34
Landing UIs
Small presentational apps with shallow component trees.
- Brand Page · Landing page composition for the brand site.
Project1/Brand_Page/src/App.jsx - Navbar · Top navigation for the brand landing page.
Project1/Brand_Page/src/Components/Navbar.jsx - Hero · Main hero section content.
Project1/Brand_Page/src/Components/Hero.jsx - Responsive Nav · Navbar-focused responsive UI.
Project11/Responsive_Navbar/src/App.jsx - Foody Zone · Minimal marketing-style front end.
Project4/Foody_zone/src/App.jsx - BMI Calc · Small calculator-oriented app.
Project7/BMI_Calculator/src/App.jsx
Nav / Page Apps
Apps organized around shared layout and route-like page sections.
- Car Service · Layout-driven service site.
Project10/Car_Service/src/App.jsx - Navbar · Shared site navigation.
Project10/Car_Service/src/components/Navbar.jsx - Pages · Home, services, careers, and contact sections.
Project10/Car_Service/src/pages/Home.jsx - My Shop · Data-driven shopping UI.
Project13/My shop/src/App.jsx - Navbar · Primary site navigation.
Project13/My shop/src/components/Navbar.jsx - Products · Static product catalog used by the UI.
Project13/My shop/src/data/products.js - Cards · Product and home card rendering.
Project13/My shop/src/components/Productcard.jsx - Pages · Home, cart, and contact boundaries.
Project13/My shop/src/pages/Home.jsx - Contact Us · Componentized contact page.
Project2/Contact_Us_Page/Contact_us/src/App.jsx - Navigation · Header navigation boundary.
Project2/Contact_Us_Page/Contact_us/src/components/Navigation/Navigation.jsx - Header · Contact page hero/header.
Project2/Contact_Us_Page/Contact_us/src/components/ContactHeader/ContactHeader.jsx - Form · Contact input form section.
Project2/Contact_Us_Page/Contact_us/src/components/ContactForm/ContactForm.jsx - Button · Reusable call-to-action button.
Project2/Contact_Us_Page/Contact_us/src/components/Button/Button.jsx
Stateful Apps
Applications centered on interactive state and derived views.
- Dice Game · Interactive game with central shared state.
Project3/Dice_Game/src/App.jsx - Gameplay · Main game state and play loop.
Project3/Dice_Game/src/components/GamePlay.jsx - Number Select · User number selection and validation.
Project3/Dice_Game/src/components/NumberSelector.jsx - Roll Dice · Dice roll interaction and result display.
Project3/Dice_Game/src/components/RoleDice.jsx - Score · Total score tracking and display.
Project3/Dice_Game/src/components/TotalScore.jsx - Rules · Rules and guidance panel.
Project3/Dice_Game/src/components/Rules.jsx - Expense Tracker · Financial tracking and summary UI.
Project8/Expense_Tracker/src/App.jsx - Inputs · Earnings and expense entry flow.
Project8/Expense_Tracker/src/Components/EarningsInput.jsx - Lists · Earning and expense list views.
Project8/Expense_Tracker/src/Components/EarningList.jsx - Summary · Totals for earnings, spending, and savings.
Project8/Expense_Tracker/src/Components/TotalEarn.jsx
Exercises
Minimal practice apps with most logic concentrated in App.
- Todo List · Minimal practice app with local state.
Project9/Todo_List/src/App.jsx - Student Mgmt · Small exercise app with compact UI logic.
Project12/Student_Managment/src/App.jsx - Project 5 App · Small app with a search-results component.
Project5/app/src/App.jsx - Search Results · Results rendering for the app search flow.
Project5/app/src/components/SearchResults/SearchResult.jsx
External Service
App with a backend boundary through Firebase.
- Contact Firebase · Contact app with cloud-backed data access.
Project6/Contact_App_Firebase/src/App.jsx
Connections 23
- Brand Page → Navbar: composes · App shell renders the shared navigation.
- Brand Page → Hero: composes · App shell places the hero section.
- Responsive Nav → Navbar: similar pattern · Another navigation-centered React shell.
- Car Service → Navbar: composes · Shared layout begins with the navbar.
- Car Service → Pages: switches views · Main content is split into page sections.
- My Shop → Navbar: composes · Top-level shopping navigation.
- My Shop → Products: loads data · Product catalog feeds the UI.
- My Shop → Cards: renders · Product data is turned into card views.
- My Shop → Pages: routes · Home, cart, and contact are the main boundaries.
- Contact Us → Navigation: composes · Page wrapper includes navigation.
- Contact Us → Header: composes · Header introduces the contact page.
- Contact Us → Form: composes · Form is the central interaction area.
- Form → Button: uses · Form actions use a reusable button.
- Dice Game → Gameplay: coordinates · Central app state drives gameplay.
- Gameplay → Number Select: uses · Players choose a number before rolling.
- Gameplay → Roll Dice: uses · Gameplay triggers dice rolls.
- Gameplay → Score: updates · Score is derived from game progress.
- Gameplay → Rules: shows · Rules are surfaced alongside play.
- Expense Tracker → Inputs: collects · Input flow captures earnings and expenses.
- Expense Tracker → Lists: shows · Entered transactions are listed back to the user.
- Expense Tracker → Summary: derives · Totals and savings are computed views.
- Project 5 App → Search Results: renders · The app delegates results presentation.
- Contact Firebase → Contact Firebase: connects · App layer sits above the Firebase-backed boundary.