portfolio-project

Requirements Analysis Document (RAD) for Software Engineer Portfolio

Version: 3.3
Date: 2025-07-13
Author: Luis Rodriguez

1. Introduction

1.1 Purpose of the System

The purpose of the Software Engineer Portfolio is to provide a personal online platform showcasing the skills, experience, and achievements of the Software Engineer. It serves as a professional representation to potential employers, collaborators, and clients while also acting as a platform for personal branding and networking.

1.2 Scope of the System

The Software Engineer Portfolio will include:

The system will be responsive and accessible, ensuring optimal user experience across devices and platforms. It will also include basic SEO optimizations to enhance discoverability.

System Boundaries:

Intended Audience:

1.3 Objectives and Success Criteria of the Project

1.4 Definitions, Acronyms, and Abbreviations

1.5 References

1.6 Overview

This document outlines the initial requirements for developing a Software Engineer Portfolio. This document aims to ensure a clear understanding of the project’s goals and deliverables among stakeholders, ensuring a successful development process.

2. Current System

Currently, there is no existing portfolio system in place. This absence represents a significant gap in the professional and educational development of the Software Engineer. Without a portfolio, it is challenging to effectively showcase technical skills, projects, and achievements to potential employers or collaborators. Additionally, the lack of a central platform limits opportunities for networking and personal branding.

The creation of a portfolio is essential to:

Developing this portfolio will address these needs and serve as a foundation for continued professional success.

3. Proposed System

3.1 Overview

The proposed Software Engineer Portfolio will be a dynamic and interactive platform designed to effectively showcase the developer’s personal and professional attributes. It will consist of multiple interconnected sections, ensuring both functionality and aesthetic appeal. The system will be built with modern web development technologies, emphasizing responsiveness, accessibility, and user engagement.

3.2 Functional Requirements

3.3 Nonfunctional Requirements

3.3.1 Usability
3.3.2 Reliability
3.3.3 Performance
3.3.4 Supportability
3.3.5 Implementation
3.3.6 Interface
3.3.7 Operation
3.3.8 Packaging

3.4 System Models

Diagram

3.4.1 Scenarios
Scenario Name employerBrowsesPortfolio
Participating Actor Instances recruiter:Visitor
Flow of Events 1. A recruiter visits the Home Page of the portfolio to read personal information and a summary of qualifications.
  2. The recruiter navigates to the Project Pages to examine specific projects that align with the skills they are seeking.
  3. The recruiter clicks on the LinkedIn profile link to connect with the Developer for further discussion.

Scenario Name peerDeveloperExploresBlog
Participating Actor Instances peerDeveloper:Visitor
Flow of Events 1. A peerDeveloper visits the Blog section of the portfolio to browse articles about development practices and career experiences.
  2. The peerDeveloper leaves a comment on a blog post (if comments are enabled) or shares the post via social media links.
  3. Inspired by the content, the peerDeveloper connects with the Developer on GitHub to explore open-source projects.

Scenario Name developerUpdatesPortfolio
Participating Actor Instances developer:Developer
Flow of Events 1. The Developer logs into the system to update project information or add a new blog post.
  2. Changes are saved, and the portfolio is updated to reflect the new content.
  3. The Developer verifies the updates for accuracy and functionality.

Scenario Name visitorChangesLanguage
Participating Actor Instances visitor:Visitor
Flow of Events 1. A visitor lands on the portfolio and notices the default language is not their preferred choice.
  2. The visitor clicks on the language toggle button in the navigation bar.
  3. The portfolio updates instantly, displaying all content in the selected language.
  4. The visitor continues to browse the portfolio in their preferred language without interruption.

Scenario Name visitorDownloadsResume
Participating Actor Instances visitor:Visitor
Flow of Events 1. A visitor visits the Home Page of the portfolio and notices the “Download Resume” button prominently displayed.
  2. The visitor clicks the button, and the system initiates the download of the developer’s resume in PDF format.
  3. The visitor confirms the successful download and opens the file to review the developer’s qualifications offline.

Scenario Name visitorChangesTheme
Participating Actor Instances visitor:Visitor
Flow of Events 1. A visitor lands on the portfolio and notices the default theme is set to light mode.
  2. The visitor clicks on the “Change Theme” button/icon located in the navigation bar or footer.
  3. The portfolio instantly switches to dark mode, applying the new theme across all pages.
  4. The visitor continues browsing the portfolio with the updated theme, which persists during navigation.
  5. (Optional) The theme preference is saved for future visits using local storage or cookies.
3.4.2 Use Case Model

Diagram

Use Case Name Visitor Browses Portfolio
Participating Actors Visitor
Flow of Events 1. A visitor visits the Home Page to view personal information and a summary of qualifications.
  2. The visitor navigates to Project Pages to examine specific projects.
  3. The visitor uses the Contact Form or clicks the LinkedIn link to connect with the developer.
Entry Conditions The portfolio is live, and the visitor has access to its URL.
Exit Conditions The visitor gathers sufficient information to decide on contacting the developer.
Quality Requirements The system should load quickly and display clear, well-organized project details with accessible navigation features.

Use Case Name Visitor Navigates Among Pages
Participating Actors Visitor
Flow of Events 1. A visitor uses the navigation menu or page links to move between sections like Home, Projects, Blog, or Contact.
  2. The visitor explores each page as needed and returns to the Home Page.
  3. The system provides consistent navigation across all pages.
Entry Conditions The visitor has landed on any page of the portfolio.
Exit Conditions The visitor navigates smoothly between sections and finds the desired content.
Quality Requirements Navigation should be intuitive, responsive, and consistent across devices and browsers.

Use Case Name Visitor Changes the Language
Participating Actors Visitor
Flow of Events 1. The visitor clicks on the language toggle button in the navigation bar.
  2. The portfolio updates to display all content in the selected language.
  3. The visitor continues exploring the portfolio in their preferred language.
Entry Conditions The portfolio supports multiple languages, and the visitor can access the language toggle feature.
Exit Conditions The portfolio updates to the selected language without errors.
Quality Requirements The language toggle must work seamlessly, with translations accurate and consistent across all pages.

Use Case Name Visitor Changes the Theme
Participating Actors Visitor
Flow of Events 1. The visitor clicks on the “Change Theme” button/icon in the navigation bar or footer.
  2. The portfolio instantly switches between light and dark mode.
  3. The theme preference persists during navigation and (optionally) across sessions.
Entry Conditions The visitor has access to the theme toggle feature, and the system supports multiple themes.
Exit Conditions The portfolio updates to the selected theme consistently across all pages.
Quality Requirements Theme toggling must be fast and visually consistent, without affecting usability or accessibility.

Use Case Name Visitor Downloads Resume
Participating Actors Visitor
Flow of Events 1. The visitor clicks on the “Download Resume” button on the Home Page.
  2. The system initiates the download of the resume in PDF format.
  3. The visitor verifies the successful download and reviews the resume offline.
Entry Conditions The resume is uploaded to the portfolio and accessible via the download button.
Exit Conditions The visitor successfully downloads and accesses the resume.
Quality Requirements The resume must download quickly and be formatted correctly for offline viewing.

Use Case Name Developer Updates Portfolio
Participating Actors Developer
Flow of Events 1. The developer logs in to update project information or add a new blog post.
  2. Changes are saved, and the portfolio reflects the new content.
  3. The developer verifies updates for accuracy and functionality.
Entry Conditions The developer has access to the content management system.
Exit Conditions The portfolio is successfully updated, and all changes are live.
Quality Requirements Updates should be instantly visible, the CMS should be user-friendly, and all changes should maintain system integrity.
3.4.3 Object Model
3.4.3.1 Data dictionary
Entity Object Name Description Angular Name
Project A piece of work or software developed by the Software Engineer to demonstrate skills and expertise. A project is identified by a unique ID and includes details such as title, description, technologies used, and a link to its live/demo version or repository.  
Job A professional role held by the developer in the past or present. A job entry is composed of a job title, company name, start and end dates, responsibilities, and achievements.  
Certification A formal recognition of a skill or expertise obtained by the developer. Certifications are identified by titles, issuing organizations, issue dates, and optionally expiration dates.  
Education Details of the developer’s academic background. Education entries include institution names, degree or certification titles, majors or fields of study, and graduation years.  
Resume A downloadable document summarizing the developer’s qualifications, experience, education, and certifications. The resume is stored in PDF format and accessible via the portfolio.  
Blog Post An article written by the developer about personal development, technical insights, or career experiences. Blog posts include titles, content, publication dates, and tags.  
Document A Software Project Document containing key attributes such as title, URL, and optionally version.  
Route Represents a navigational path within the application. Each route includes a unique path, name, and associated component or view used to structure the site.  
Theme Represents the visual style preference selected by the user (e.g., light or dark mode). Includes the attribute name.  
Language Represents the language selected by the user for localization. Includes attributes such as code (e.g., “en”, “es”) and name. language.model

Boundary Object Name Description Angular Name
Download Resume Button A clickable interface element that allows visitors to download the developer’s resume in PDF format. Includes a label and triggers the download action when clicked.  
Light/Dark Mode Button A toggle that enables users to switch the portfolio’s theme between light and dark modes. Changes the website’s appearance without reloading the page.  
Navigation Button A user interface button that allows users to navigate between different views of the application, such as Home, Projects, Docs, and Blog, by triggering route changes.  
Language Button A toggle or dropdown allowing users to switch the language of the portfolio (e.g., English to Spanish). Stores the selected language preference. language-switcher

Control Object Name Description Angular Name
Themes Control Manages the theme toggling functionality. Adjusts the portfolio’s visual style between light and dark modes and stores the user’s preference.  
Resume Control Processes the request to download the resume file. Ensures the file exists and triggers the file download process for the user.  
Projects Control Handles the logic and interactions related to project data within the application. Responsible for retrieving, filtering, and organizing project entries, and coordinating updates between the user interface and internal logic.  
Routing Control Handles the application’s navigation logic. When triggered by a NavigationButton, it updates the current route and loads the corresponding view or component.  
Languages Control Handles the logic for switching the portfolio’s language. Retrieves the selected language from the interface and updates all content dynamically. language.service
3.4.3.2 Class diagrams

Diagram

3.4.3.3 Object Associations diagram

Diagram

3.4.4 Dynamic models

Diagram

Note: Change Language and Change Theme are basically the same but with different names.

3.4.5 User interface—navigational paths and screen mock-ups

The user interface for this project has been designed and prototyped in Figma, providing a high-fidelity, interactive representation of the final product. This prototype closely mirrors the intended look and functionality of the actual website, offering a realistic preview of the user experience. The navigational paths within the prototype demonstrate how users will move through different sections of the application, ensuring intuitive flow and accessibility. By utilizing Figma, the design process remains flexible and collaborative, enabling quick iterations based on feedback. The screen mock-ups included here serve as both a visual guide and a reference for implementation. The full interactive prototype is available through the following Figma Prototype.

While creating the user interface for this project, inspiration was drawn from various design elements and layouts created by other designers. These elements helped inform the overall aesthetic and functionality of the interface. Credit is given to the original creators of the design components used, including the Personal Portfolio Website Template and the Free Blog Template available on Figma. The designs have been modified and customized to suit the specific requirements of this project while maintaining the essence of the original inspirations. This ensures that the design is both original and respectful of existing work. Proper attribution has been provided within the final prototype and documentation.

4. Glossary

A

B

C

D

E

F

G

H

I

J

L

M

N

O

P

Q

R

S

T

U

V

W