<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Eze Chinedu Charles</title>
    <description>The latest articles on Forem by Eze Chinedu Charles (@charleychinedu).</description>
    <link>https://forem.com/charleychinedu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3518638%2F8fee103a-6aa7-4b23-bedf-9a7c182b9e9f.png</url>
      <title>Forem: Eze Chinedu Charles</title>
      <link>https://forem.com/charleychinedu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/charleychinedu"/>
    <language>en</language>
    <item>
      <title>🚀 Building My First Backend Project: Expense Tracker API</title>
      <dc:creator>Eze Chinedu Charles</dc:creator>
      <pubDate>Sun, 08 Mar 2026 00:36:37 +0000</pubDate>
      <link>https://forem.com/charleychinedu/building-my-first-backend-project-expense-tracker-api-4j36</link>
      <guid>https://forem.com/charleychinedu/building-my-first-backend-project-expense-tracker-api-4j36</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/..." class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/..." alt="Uploading image" width="800" height="400"&gt;&lt;/a&gt;As part of my journey into backend development, I recently built my first REST API — an Expense Tracker API.&lt;br&gt;
The goal of the project was simple: create a backend system that allows users to track expenses, organize them by category, and manage financial records through an API.&lt;br&gt;
This project helped me understand how real backend systems are structured, from database design to API architecture.&lt;br&gt;
💡 Project Overview&lt;br&gt;
The Expense Tracker API is a RESTful backend service that allows users to:&lt;br&gt;
Create and manage expense categories&lt;br&gt;
Add and track expenses&lt;br&gt;
Organize expenses by category&lt;br&gt;
Perform CRUD operations through API endpoints&lt;br&gt;
It acts as the backend engine that could power a mobile app, web dashboard, or financial management system.&lt;br&gt;
⚙️ Tech Stack&lt;br&gt;
For this project, I used the following technologies:&lt;br&gt;
Node.js – Runtime environment&lt;br&gt;
Express.js – Web framework for building the API&lt;br&gt;
PostgreSQL – Relational database&lt;br&gt;
Sequelize ORM – Database modeling and migrations&lt;br&gt;
Docker – Containerized development environment&lt;br&gt;
TablePlus – Database management&lt;br&gt;
These tools helped me learn how modern backend systems are structured and deployed.&lt;br&gt;
🗂️ Database Design&lt;br&gt;
The API is built around two main entities:&lt;br&gt;
Categories&lt;br&gt;
Categories help organize expenses into groups such as:&lt;br&gt;
Food&lt;br&gt;
Transportation&lt;br&gt;
Utilities&lt;br&gt;
Entertainment&lt;br&gt;
Each category contains:&lt;br&gt;
id&lt;br&gt;
name&lt;br&gt;
createdAt&lt;br&gt;
updatedAt&lt;br&gt;
Expenses&lt;br&gt;
Expenses represent individual financial records.&lt;br&gt;
Each expense contains:&lt;br&gt;
id&lt;br&gt;
title&lt;br&gt;
amount&lt;br&gt;
categoryId&lt;br&gt;
createdAt&lt;br&gt;
updatedAt&lt;br&gt;
The categoryId acts as a foreign key that connects each expense to a category.&lt;br&gt;
This relationship ensures that expenses are properly categorized.&lt;br&gt;
🔗 API Endpoints&lt;br&gt;
The API provides standard REST endpoints.&lt;br&gt;
Categories&lt;br&gt;
POST /categories&lt;br&gt;
GET /categories&lt;br&gt;
GET /categories/:id&lt;br&gt;
PUT /categories/:id&lt;br&gt;
DELETE /categories/:id&lt;br&gt;
Expenses&lt;br&gt;
POST /expenses&lt;br&gt;
GET /expenses&lt;br&gt;
GET /expenses/:id&lt;br&gt;
PUT /expenses/:id&lt;br&gt;
DELETE /expenses/:id&lt;br&gt;
These endpoints allow full CRUD functionality for managing financial data.&lt;br&gt;
🛠️ Key Things I Learned&lt;br&gt;
Building this project helped me understand several important backend concepts.&lt;br&gt;
1️⃣ Database Migrations&lt;br&gt;
Using Sequelize migrations helped me version control my database structure.&lt;br&gt;
Instead of manually creating tables, migrations allowed me to define schemas programmatically and run them using CLI commands.&lt;br&gt;
2️⃣ Model Relationships&lt;br&gt;
One challenge I faced was linking Expenses to Categories using a foreign key.&lt;br&gt;
This helped me understand how relational databases maintain data integrity between tables.&lt;br&gt;
3️⃣ API Architecture&lt;br&gt;
I learned how to structure a backend project using:&lt;br&gt;
Routes&lt;br&gt;
Controllers&lt;br&gt;
Models&lt;br&gt;
Migrations&lt;br&gt;
This separation keeps the codebase clean and maintainable.&lt;br&gt;
4️⃣ Error Handling&lt;br&gt;
While building the API, I encountered several common backend issues like:&lt;br&gt;
Migration order errors&lt;br&gt;
Database connection problems&lt;br&gt;
Incorrect model references&lt;br&gt;
Debugging these problems improved my understanding of how backend systems behave.&lt;br&gt;
🐳 Using Docker for Development&lt;br&gt;
I also experimented with Docker to standardize the development environment.&lt;br&gt;
Using Docker ensures that the application runs consistently across different systems by packaging the runtime, dependencies, and configuration together.&lt;br&gt;
📌 Future Improvements&lt;br&gt;
This project is just the beginning. Some improvements I plan to add include:&lt;br&gt;
User authentication (JWT) (Done already)&lt;br&gt;
Expense filtering by date&lt;br&gt;
Pagination for large datasets&lt;br&gt;
Expense analytics endpoints&lt;br&gt;
API documentation with Swagger&lt;/p&gt;

</description>
      <category>backend</category>
      <category>webdev</category>
      <category>api</category>
      <category>programming</category>
    </item>
    <item>
      <title>Designing a transportation/logistics web app</title>
      <dc:creator>Eze Chinedu Charles</dc:creator>
      <pubDate>Sun, 08 Mar 2026 00:00:09 +0000</pubDate>
      <link>https://forem.com/charleychinedu/designing-a-transportationlogistics-web-app-4601</link>
      <guid>https://forem.com/charleychinedu/designing-a-transportationlogistics-web-app-4601</guid>
      <description>&lt;p&gt;We, product designers, worked on a collaborative project that involves frontend developers, backend developers, technical writers, cybersecurity experts, product managers, etc. This involves a design of a transportation/logistics web app (&lt;strong&gt;&lt;em&gt;Trekka&lt;/em&gt;&lt;/strong&gt;) that connects passengers with licensed transport companies across Africa. It enables users to search, filter and book inter-state and inter-country trips effortlessly. Registered transport companies can now manage fleets, drivers, and bookings using their dashboards, it also includes a system admin interface for platform management, analytics and compliance.&lt;/p&gt;

</description>
      <category>figma</category>
      <category>webdesign</category>
      <category>transportation</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
