DEV Community

EMMANUEL UDODIRIM
EMMANUEL UDODIRIM

Posted on

πŸ“Œ Building a Dynamic Profile API Endpoint: My HNG Stage Zero Journey

I'm excited to share my latest project as part of the HNG Internship Stage Zero task! I built a simple yet functional REST API endpoint that serves dynamic content. This project helped me apply my backend development skills using Node.js and Express.

πŸš€ Project Overview

I created a /me endpoint that returns:

  • My personal information
  • Current UTC timestamp
  • A random cat fact that changes with each request

Here's what the response looks like:

{ "status": "success", "user": { "email": "emmanueludodirim4@gmail.com", "name": "Emmanuel Udodirim", "stack": "Node.js/Express" }, "timestamp": "2025-10-17T07:37:07Z", "fact": "Cats have 32 muscles in each ear." } 
Enter fullscreen mode Exit fullscreen mode

πŸ’» Tech Stack & Implementation

For this project, I used:

  • Node.js/Express: For creating the RESTful API
  • Axios: For fetching external data from Cat Facts API
  • Railway: For deployment and hosting

The implementation involved:

const express = require('express'); const axios = require('axios'); const app = express(); // GET /me endpoint app.get('/me', async (req, res) => { try { // Fetch cat fact from external API const catFactResponse = await axios.get('https://catfact.ninja/fact', { timeout: 5000 // 5 second timeout }); // Create response object const response = { status: 'success', user: { email: process.env.USER_EMAIL || 'emmanueludodirim4@gmail.com', name: process.env.USER_NAME || 'Emmanuel Udodirim', stack: process.env.USER_STACK || 'Node.js/Express' }, timestamp: new Date().toISOString(), // Current UTC time in ISO 8601 fact: catFactResponse.data.fact }; res.status(200).json(response); } catch (error) { // Error handling } }); 
Enter fullscreen mode Exit fullscreen mode

πŸ” Challenges & Learnings

During this project, I encountered several challenges:

  • Deployment Issues: Navigating Railway's configuration requirements
  • Port Configuration: Ensuring my app listened on the correct port

🎯 The Result

The final API is live at: https://hng-stage-zero-backend-production-1abf.up.railway.app/me

You can view the code on GitHub: https://github.com/emmytronix/hng-stage-zero-backend.git

Top comments (0)