How englorayservice-prog/engloray-website works
Purpose and topology
Engloray is a marketing, services, training, internship, and career portal. It has two deployable concerns in one repository: a Create React App frontend and an ASP.NET Core API that receives lead/application forms and persists them. Firebase Hosting configuration exists for the frontend; the API is a separate .NET project.
Frontend entry and application composition
The production React entry is src/index.js, which mounts src/App.js; global styling starts in src/index.css and src/App.css. App.js is the routing/composition boundary for a large collection of service, learning, career, product, legal, and RayMart pages. Page-level content is primarily static React markup plus local CSS and media.
Primary site domains
The main information architectures are:
• Technology/services pages: src/Pages/TechGroupSection/TechGroupPage/TechGroup.jsx, src/Pages/Sub Pages/DevelopmentServices/DevelopmentServices.jsx, src/Pages/Sub Pages/WorksCaseStudies/WorksCaseStudies.jsx.
• Learning/courses and enrollment: src/Pages/TechLearningSection/TechLearningPage/TechLearning.jsx, src/Pages/Sub Pages/MainCoursesPage/MainCoursesPage.jsx, src/Pages/Sub Pages/AllProgramsPage/AllProgramsPage.jsx.
• Careers and internships: src/Pages/Sub Pages/CareersPage/CareersPage.jsx, src/Pages/Sub Pages/JobSeekerPage/JobSeekerPage.jsx, src/Pages/Sub Pages/SoftwareDeveloperInternPage/SoftwareDeveloperInternPage.jsx.
• Product/brand sub-sites including RayMart and portal content: src/Pages/Sub Pages/RaymartPage/RaymartPage.jsx, src/Pages/Sub Pages/EnglorayPortalPage/EnglorayPortalPage.jsx.
Shared presentation and UX layer
Reusable navigation, footer, animation, scrolling, chatbot, and section primitives are centralized under src/Components. Important shell elements include src/Components/Navbar/Navbar.jsx, src/Components/Footer/Footer.jsx, and src/Components/Chatbot/Chatbot.jsx. SEO metadata is handled separately by src/seo/SEOHead.jsx, src/seo/SchemaMarkup.jsx, and src/seo/seoConfig.js. The chatbot’s local content source is src/data/chatbotData.json.
Form submission boundary
Frontend forms converge through submission modules rather than directly accessing persistence: src/Pages/Sub Pages/HandleSubmit/HandleSubmit.js and src/Pages/Sub Pages/HandleSubmit/InternshipSubmit.js. Contact, course, program, workshop, career, and internship UI collect visitor data, then issue requests to the backend API. This is the principal frontend/backend boundary; no shared contract package is present.
API request-to-database pipeline
EnglorayPortfolio.API/Program.cs configures the ASP.NET Core host. Form-specific controllers accept HTTP requests, map request DTOs to persistence models, and use EF Core storage—for example EnglorayPortfolio.API/Controllers/CoursesFormController.cs, EnglorayPortfolio.API/Controllers/InternshipFormController.cs, and EnglorayPortfolio.API/Controllers/CareerFormController.cs. Request contracts reside in EnglorayPortfolio.API/DTO's/CoursesFormRequest.cs and peers; database entities reside in EnglorayPortfolio.API/Models/CoursesForm.cs, EnglorayPortfolio.API/Models/InternshipForms.cs, and related form models.
Persistence, runtime, and deployment
The API’s database boundary is EnglorayPortfolio.API/Data/AppDbContext.cs; schema evolution is EF Core migrations under EnglorayPortfolio.API/Migrations/, with an additional SQL artifact at EnglorayBackend;.sql. Uploaded resumes are stored on the API filesystem under EnglorayPortfolio.API/UploadedResumes, making API-host storage a material operational dependency. Runtime configuration is in EnglorayPortfolio.API/appsettings.json and its development override. The frontend uses Node/React/CRA (package.json), builds static assets, and is configured for Firebase Hosting through firebase.json and .firebaserc; public videos, fonts, and images are served from public/ and src/assets/.
Main entry points: App.js App routing · CoursesFormController.cs Form controllers · HandleSubmit.js Form submission modules · index.js React entry
Components 20
React frontend
Create React App marketing and portal experience.
- React entry
src/index.js - App routing · Composes routes across the portal domains.
src/App.js - Shared site shell · Navigation, footer, chatbot, and UX primitives.
src/Components/Navbar/Navbar.jsx - SEO metadata
src/seo/SEOHead.jsx - Chatbot content
src/data/chatbotData.json - Services and case studies
src/Pages/TechGroupSection/TechGroupPage/TechGroup.jsx - Learning and enrollment
src/Pages/TechLearningSection/TechLearningPage/TechLearning.jsx - Careers and internships
src/Pages/Sub Pages/CareersPage/CareersPage.jsx - Product and portal pages
src/Pages/Sub Pages/RaymartPage/RaymartPage.jsx - Form submission modules · Converges contact, enrollment, career, and internship submissions.
src/Pages/Sub Pages/HandleSubmit/HandleSubmit.js - Static media · Images, fonts, and video served with the frontend.
ASP.NET Core API
Form intake and persistence service.
- API host
EnglorayPortfolio.API/Program.cs - Form controllers · Endpoints for courses, internships, careers, and related forms.
EnglorayPortfolio.API/Controllers/CoursesFormController.cs - Request DTOs
EnglorayPortfolio.API/DTO's/CoursesFormRequest.cs - Form entities
EnglorayPortfolio.API/Models/CoursesForm.cs - EF Core context
EnglorayPortfolio.API/Data/AppDbContext.cs - Schema migrations
Hosting and storage
Deployment and operational dependencies.
- Application database · Stores submitted form records.
- Uploaded resumes · Operational dependency for resume uploads.
EnglorayPortfolio.API/UploadedResumes - Firebase Hosting · Hosts the built React frontend.
firebase.json
Connections 20
- React entry → App routing: mounts
- App routing → Shared site shell: uses
- App routing → SEO metadata: renders metadata
- Shared site shell → Chatbot content: loads
- App routing → Services and case studies: routes to
- App routing → Learning and enrollment: routes to
- App routing → Careers and internships: routes to
- App routing → Product and portal pages: routes to
- Learning and enrollment → Form submission modules: enrollment data
- Careers and internships → Form submission modules: applications
- App routing → Static media: serves media
- Form submission modules → Form controllers: HTTP requests · No shared contract package.
- API host → Form controllers: hosts
- Form controllers → Request DTOs: binds
- Form controllers → Form entities: maps to
- Form controllers → Uploaded resumes: writes resumes
- Form entities → EF Core context: persists through
- EF Core context → Application database: EF Core storage
- Schema migrations → Application database: evolves schema
- Firebase Hosting → React entry: serves built app