Skip to content

BecomingABetterDev/Portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

30 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

## Full-Stack Developer Portfolio Ecosystem

A production-grade, fully decoupled full-stack portfolio ecosystem featuring an administrative management interface, stateless JWT security, and automated database synchronization. The infrastructure relies on a highly performant client-side single-page application (SPA) optimized with Vite and a robust, secure Node.js REST API backend.

---

## ⚑ Key Architectural Features

* **Secure Admin Gateway**: An unmapped administrative console macro built into the client runtime allowing deep system manipulation without public router signatures.
* **Dual-Layer Fallback Architecture**: The user interface instantly hydrates components using local static parameters. If the remote database engine experiences structural cold starts or API routing dropouts, the system stays online with full contextual representation.
* **Automated Seeding Matrices**: Built-in script workflows parse operational data configurations and securely initialize database entities from isolated local states.
* **Asynchronous Telemetry Caching**: A contextual telemetry notice is wired into the UI loader. If server wake-up cycles cross a 4-second barrier, a user-facing technical notice reveals itself smoothly, reducing site abandonment rates.
* **Armored Production Headers**: Backend security hardened with `helmet` for HTTP response protection and `express-rate-limit` to neutralize malicious route execution vectors.

---


## πŸš€ Tech Stack Architecture

| Layer            | Technology              | Operational Intent                                                                                   |
| :--------------- | :---------------------- | :--------------------------------------------------------------------------------------------------- |
| **Frontend**     | React 18 & Vite         | Component-driven user interfaces with sub-millisecond Hot Module Replacement (HMR).                  |
| **Styling**      | Tailwind CSS v2         | Utility-first design engine centered around strict typographic hierarchy tokens and custom palettes. |
| **Backend**      | Node.js & Express v4    | Event-driven, asynchronous monolithic REST API services layer.                                       |
| **Database**     | MongoDB & Mongoose v5   | NoSQL document storage utilizing strict model schema structures and type validation rules.           |
| **State & Auth** | React Context API + JWT | Stateless, secure admin sessions synchronized via persistent Axios HTTP authorization headers.       |

---

## 🧠 System Architecture & Application Flow

The system coordinates application view states and asynchronous background pipeline requests through a completely centralized, event-monitored data model loop:

```plaintext
[ Client Browser ] ────( Global Keyboard Macro )────> Updates View State (App.jsx)
        β”‚
   (Axios HTTP)
        β”‚
        β–Ό
[ Express API Server ] ───( Middleware Guard )───> [ Controllers ] ───> [ MongoDB Database ]

πŸ“‚ System Topology Structure

+---backend                             # Node.js Express server core architecture
|   |   .env                            # Isolated local environment execution variables (Git-ignored)
|   |   .gitignore                      # Local rules excluding systemic dependencies from tracking
|   |   package-lock.json               # Locked dependency tree configuration manifest
|   |   package.json                    # Backend script execution configurations & project manifest
|   |   seedAdmin.js                    # Administrative credential cloud provisioner
|   |   seedProjects.js                 # Local project configuration data collection seeder
|   |   server.js                       # Primary application entry point & middleware orchestrator
|   |
|   +---config
|   |       db.js                       # MongoDB Atlas cloud server connection logic via Mongoose
|   |
|   +---controllers
|   |       authController.js           # Handles stateless login requests, hashing, and token issuance
|   |       messageController.js        # Manages inbound recruiter telemetry payload workflows
|   |       projectController.js        # Manages full CRUD operations on database project vectors
|   |
|   +---middleware
|   |       authMiddleware.js           # Restricts access by intercepting and decoding JWT tokens
|   |
|   +---models
|   |       Admin.js                    # Schema validation profile for authenticated user identity
|   |       Message.js                  # Schema definition for system messaging telemetry data
|   |       Project.js                  # Operational schema definition for portfolio items
|   |
|   \---routes
|           authRoutes.js               # Route mapping for administrator verification pipelines
|           messageRoutes.js            # Inbound communication router endpoints
|           projectRoutes.js            # External and administrative data pipeline routes
|
\---frontend                            # Client single-page application root (Vite)
    |   .gitignore                      # Client deployment system exclusions matrix
    |   index.html                      # Core HTML layout shell where React app mounts
    |   package-lock.json               # Locked client-side package dependency architecture
    |   package.json                    # Frontend node parameters, assets, and pipeline scripts
    |   postcss.config.cjs              # Engine configuration parsing global style variables
    |   tailwind.config.cjs             # Utility-first layout framework styling theme overrides
    |   vite.config.js                  # React build pipeline, optimization configurations, & development proxies
    |
    \---src
        |   App.jsx                     # Root component managing application view-routing states
        |   index.css                   # Global stylesheets importing system framework utilities
        |   main.jsx                    # System entry point initializing virtual DOM render cycles
        |
        +---api
        |       axiosInstance.js        # Centralized HTTP request engine with dynamic environment base URLs
        |
        +---components
        |   +---admin
        |   |       DeleteModal.jsx     # Safe double-verification prompt for destructive file updates
        |   |       MessageList.jsx     # Telemetry logging board displaying incoming message payloads
        |   |       ProjectForm.jsx     # Unified dynamic dashboard form managing project creation/edits
        |   |
        |   +---layout
        |   |       Footer.jsx          # Lower navigation wrapper housing brand legalities and handles
        |   |       Navbar.jsx          # Header command terminal containing primary interface controls
        |   |
        |   \---ui
        |           CertBadge.jsx       # Micro-card component showcasing technical system credentials
        |           ProjectCard.jsx     # Extensible dashboard card visualizing active code assets
        |           SectionHeading.jsx  # Modular component asserting clear typographic layouts
        |           SkillBadge.jsx      # High-fidelity tech stack presentation component
        |
        +---context
        |       AuthContext.jsx         # Globally exposes user login state, persistence, and methods
        |
        +---data
        |       staticData.js           # Low-latency backup dataset used for offline layout fallback
        |
        +---hooks
        |       useProjects.js          # Custom asynchronous hook orchestrating server state tracking
        |
        +---utils
        |       helpers.js              # Reusable functional modules handling interface formatting
        |
        \---views
                AdminView.jsx           # Locked gateway dashboard interface for administrative systems
                ContactView.jsx         # Secure telemetry capture form for communication entries
                HomeView.jsx            # Core dashboard layout displaying profile parameters
                ProjectsView.jsx        # Complete project matrix tracking active systems

πŸ” Authentication Context

Method Endpoint Authorization Operational Intent
POST /api/auth/login Public Validates user parameters and returns a signed cryptographic JWT.

πŸ“ Project Storage Repositories

Method Endpoint Authorization Operational Intent
GET /api/projects Public Pulls all persistent project items from the data stream.
POST /api/projects Required (JWT) Writes a new engineering record entry to the master cluster database.
PUT /api/projects/:id Required (JWT) Updates dynamic property entries on designated target records.
DELETE /api/projects/:id Required (JWT) Wipes the target entry record out of the server storage instance.

πŸ“¨ Client Communications Queue

Method Endpoint Authorization Operational Intent
POST /api/messages Public Submits a validated contact form submission payload container.
GET /api/messages Required (JWT) Retrieves stored feedback entries for administrator tracking and metrics review.
PATCH /api/messages/:id/read Required (JWT) Toggles read states on target records.
DELETE /api/messages/:id Required (JWT) Drops an item record from the active messaging queue.

βš™οΈ Environment Profile Settings

To run the application locally or register environment profiles on hosting cloud runtimes, you must establish isolated configurations.

πŸ”Œ Backend Profile Configuration (backend/.env)

Create a .env file inside the backend root. Ensure configuration variables are typed explicitly as clean string literals without utilizing double quotes ("") or trailing semicolons (;):

PORT=5000
MONGO_URI=mongodb+srv://<username>:<password>@cluster.mongodb.net/portfolio_db
JWT_SECRET=your_high_entropy_alphanumeric_jwt_signing_key
TARGET_EMAIL=your_secure_admin_email
TARGET_PASSWORD=your_secure_admin_password

πŸ’» Frontend Variable Selection (frontend/src/api/axiosInstance.js)

The communication instance reads the compile target natively. If it captures a production assignment (import.meta.env.PROD), it redirects routing requests to the target cloud cluster while maintaining clean local proxies during sandbox development:

const API_BASE_URL = import.meta.env.PROD
  ? "[https://your-live-backend-app.onrender.com/api](https://your-live-backend-app.onrender.com/api)"
  : "/api";

πŸ› οΈ Local Development Installation

Execute these initialization sequences within individual terminal interfaces to boot up the unified architecture:

1. Database Provisioning & Seed Engine

To spin up structural project collections and provision administrative authority, run the combined data synchronization script. This pipeline sanitizes existing items, aggregates your configuration profiles securely via local variables, and populates the remote cluster:

cd backend
npm install
npm run seed

2. Boot up Backend Application

Run the Express gateway on your local server port. The stack uses nodemon to track changes instantly during development:

npm run dev

3. Boot up Frontend Application

Build dependencies, bind the Vite environment configuration engines, and initiate the hot module reloading client interface:

cd ../frontend
npm install
npm run dev

🎨 Design Tokens & UI Architecture

πŸŽ›οΈ Framework Palette Tokens

The platform renders a clean, digital terminal dark mode layout aesthetic powered by standard framework color primitives:

  • Deep Base Canvas Background: #111827 (bg-gray-900)
  • Surface Wrapper Components: #1f2937 (bg-gray-800)
  • Primary System Accent Highlight: #06b6d4 (text-cyan-500 / border-cyan-500) β€” Applied to interactive nodes, anchor focus lines, and active parameters.

πŸ”€ Typography Hierarchy

  • Display Elements & Section Headings: Space Grotesk β€” Selected for landing view presentation elements, section banners, and metrics tracking.
  • Reading Body Typography: Inter β€” High-legibility configuration for detailed text layouts, case summaries, and paragraphs.
  • System Parametric Elements: JetBrains Mono β€” Applied to inline code snippets, data model fields, directories, and structural tags.

🌍 Cloud Deployment Blueprint

The codebase is engineered to run seamlessly across specialized global hosting topologies for absolute resource optimization:

Frontend Layer (Vercel / Cloudflare Pages)

  • Connect your active repository fork to the platform interface.
  • Assign your Build Command as npm run build and your Output Directory as dist.
  • Global Content Delivery Networks (CDNs) cache and serve the static presentation layers with sub-millisecond response rates.

Backend Routing Monolith (Render)

  • Construct a new Web Service node bound to the repository subdirectory.
  • Ensure all values declared in backend/.env are populated completely inside the Environment Variables dashboard of your active instance.
  • Set the start command execution to npm start.

πŸ’‘ System Infrastructure Notice: Free cloud computing tiers put runtime containers into temporary hibernation when zero traffic matches routing endpoints for 15 minutes. The frontend contains integrated latency-aware components that gracefully alert recruiters of cluster wake-up cycles automatically when request delays exceed 4 seconds.


About

A production-grade, fully decoupled full-stack portfolio ecosystem featuring an administrative management interface, stateless JWT security, and automated database synchronization. The infrastructure relies on a highly performant client-side single-page application (SPA) optimized with Vite and a robust, secure Node.js REST API backend.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors