Skip to content

ericnabofa/Junior-Backend-Engineer-Portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 

Repository files navigation

Junior Backend Engineer Portfolio

Node.js TypeScript AWS Terraform

This repository showcases five projects designed to demonstrate backend engineering skills in Node.js, TypeScript, AWS, and Terraform, tailored for a Junior Backend Engineer role.


πŸ“‹ Table of Contents

  1. Task Management API
  2. Serverless URL Shortener
  3. Real-Time Chat Application
  4. E-commerce Backend
  5. Infrastructure Automation with Terraform
  6. Getting Started
  7. Contact

1. Task Management API

πŸš€ Description

A RESTful API to manage tasks with user authentication and role-based access control.

πŸ“‚ Key Features

  • User authentication using JWT.
  • CRUD operations for tasks.
  • Deployed on AWS with Terraform.

πŸ› οΈ Technologies Used

  • Node.js, TypeScript, PostgreSQL.
  • AWS ECS, Terraform.

πŸ“ Setup Instructions

  1. Navigate to the task-management-api folder:
    cd task-management-api
  2. Install dependencies:
    npm install
  3. Set environment variables in .env (see .env.example).
  4. Run locally:
    npm run dev
  5. Deploy to AWS:
    terraform apply

2. Serverless URL Shortener

πŸš€ Description

A serverless backend that shortens URLs and retrieves the original URLs.

πŸ“‚ Key Features

  • Generate short links for long URLs.
  • Set expiration dates for links.
  • Deployed on AWS Lambda using Terraform.

πŸ› οΈ Technologies Used

  • Node.js, TypeScript, DynamoDB, API Gateway.
  • AWS Lambda, Terraform.

πŸ“ Setup Instructions

  1. Navigate to the serverless-url-shortener folder:
    cd serverless-url-shortener
  2. Install dependencies:
    npm install
  3. Deploy to AWS:
    terraform apply
  4. Test API endpoints using Postman or cURL.

3. Real-Time Chat Application

πŸš€ Description

A backend for a real-time chat application supporting multiple chat rooms.

πŸ“‚ Key Features

  • Real-time messaging using WebSockets.
  • Multi-room support.
  • User presence tracking with DynamoDB Streams.

πŸ› οΈ Technologies Used

  • Node.js, TypeScript, WebSocket.
  • AWS SNS/SQS, DynamoDB Streams.

πŸ“ Setup Instructions

  1. Navigate to the real-time-chat folder:
    cd real-time-chat
  2. Install dependencies:
    npm install
  3. Start server locally:
    npm run dev
  4. Deploy to AWS:
    terraform apply

4. E-commerce Backend

πŸš€ Description

A scalable backend for managing products, user accounts, and orders for an e-commerce platform.

πŸ“‚ Key Features

  • Product inventory management.
  • Secure user authentication and cart handling.
  • Payment gateway integration.

πŸ› οΈ Technologies Used

  • Node.js, TypeScript, PostgreSQL.
  • AWS S3, RDS, Terraform.

πŸ“ Setup Instructions

  1. Navigate to the ecommerce-backend folder:
    cd ecommerce-backend
  2. Install dependencies:
    npm install
  3. Set environment variables in .env.
  4. Run locally:
    npm run dev
  5. Deploy to AWS:
    terraform apply

5. Infrastructure Automation with Terraform

πŸš€ Description

A reusable Terraform module for automating web application deployment on AWS.

πŸ“‚ Key Features

  • Automated provisioning of EC2, S3, and RDS.
  • Outputs for application URLs, credentials, and logs.
  • Reusable module for multiple projects.

πŸ› οΈ Technologies Used

  • Terraform, AWS EC2, S3, RDS.

πŸ“ Setup Instructions

  1. Navigate to the infrastructure-automation folder:
    cd infrastructure-automation
  2. Update variables.tf with your AWS credentials.
  3. Apply Terraform script:
    terraform apply

βš™οΈ Getting Started

Clone this repository to explore the projects:

git clone https://github.com/ericnabofa/Junior-Backend-Engineer-Portfolio.git
cd  Junior-Backend-Engineer-Portfolio

Navigate to each project's folder for more details and instructions.


πŸ“ž Contact

Oghenevwegba Eric Nabofa

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published