Project Participation

Automation Project


Postman - API Test Automation
June 2024 - June 2024

Introduction:
The Postman API Test Automation Certification Program developed by Valentin Despa is an educational program aimed at helping developers learn API testing and automation using Postman. This program, available through platforms like freeCodeCamp and Postman's API Network, offers structured lessons that guide users through the essential aspects of API test automation, including request creation, response validation, and automation scripting in Postman.

Valentin Despa, a recognized software developer and instructor in the Postman community, created this certification to cater to beginners and professionals looking to deepen their understanding of Postman’s API testing capabilities. Despa’s courses often use practical, hands-on projects, such as a coffee shop API scenario, which allow participants to practice setting up test scenarios and automating workflows in a real-world-like environment.

Upon completing the course assignments, participants can earn a digital badge to showcase their skills, which can be shared on LinkedIn or other professional networks. While some users have reported delays in badge issuance, Postman’s community and support teams are generally available to help resolve these issues​

Role:
  • Quality Assurance Engineer

  • Goals:
    1. Establish Foundational Knowledge
    • Train the team in fundamental Postman operations, including creating requests, managing collections, and using environment variables effectively.
    • Build confidence in using Postman as a central tool for API testing
    2. Adopt Best Practices in Test Automation
    • Implement automation scripts within Postman collections using JavaScript for response validation, data-driven testing, and workflow automation.
    • Follow structured approaches for writing reusable and maintainable tests
    3. Simulate Real-World Scenarios
    • Design and execute test cases using projects like the "Artisan Coffee House API", a sample API Despa uses to teach realistic automation scenarios.
    • Create scenarios to test API endpoints for functionality, reliability, and error handling
    4. Enhance Collaboration Through Postman Workspaces
    • Share collections and environments within the team for consistent testing and review.
    • Use Postman’s collaboration features to streamline feedback and iteration during the development and testing lifecycle
    5. Integrate Postman with CI/CD Pipelines
    • Learn to execute Postman tests through GitHub Action in CI/CD pipelines to enable continuous validation.
    • Automate regression test suites and integrate test reports with tools like GitHub Action
    6. Focus on Learning and Certification
    • Encourage team members to complete Valentin Despa’s API Test Automation courses to build comprehensive skills.
    • Use Postman’s certification as a milestone for team development and benchmarking
    7. Expand API Test Coverage
    • Test for functional correctness, edge cases, performance, and security to achieve comprehensive coverage.
    • Leverage data-driven testing techniques taught by Despa to simulate multiple real-world use cases
    8. Develop and Share Knowledge Resources
    • Create internal documentation and tutorials, similar to Despa's educational style, to ensure the team’s continuous learning.
    • Organize workshops or knowledge-sharing sessions to instill best practices
    Attachment :

    Quality Assurance


    Metric-Imperial Converter
    June 2024 - July 2024

    Introduction:
    In the Metric-Imperial Converter project, we'll develop an API to convert measurements between metric and imperial units. As backend developers, we'll implement conversion logic and endpoints, and as quality assurance engineers, we'll ensure reliability by writing unit and functional tests using Mocha, Chai, and Chai-HTTP.

    Role:
  • Back End Developer
  • Quality Assurance Engineer

  • Goals:
    As a Backend Developer:
    • Build an API Endpoint: Create a robust API that accepts user input for metric and imperial measurements and returns accurate conversions.
    • Implement Conversion Logic: Develop precise conversion algorithms for units such as length, weight, and volume.
    • Validate User Input: Ensure the API handles invalid or missing inputs gracefully with appropriate error messages.
    As a Quality Assurance Engineer:
    • Write Unit Tests: Use Mocha and Chai to test individual functions for conversion accuracy and input validation.
    • Perform Functional Testing: Utilize Chai-HTTP to test complete API workflows, including successful conversions and error handling.
    • Ensure Code Reliability: Identify edge cases and write comprehensive tests to ensure consistent performance and accuracy.
    • Maintain Test Coverage: Strive for high test coverage to catch potential bugs and ensure all code paths are tested.
    Attachment :

    Issue Tracker
    June 2024 - July 2024

    Introduction:
    In the Issue Tracker project, we'll develop a backend API to manage and track issues for projects. As backend developers, we'll design endpoints for creating, updating, viewing, and deleting issues. As quality assurance engineers, we'll ensure functionality and reliability by writing and executing functional tests using Chai-HTTP.

    Role:
  • Back End Developer
  • Quality Assurance Engineer

  • Goals:
    As a Backend Developer:
    • Build a RESTful API: Create endpoints to handle CRUD operations for managing issues, including creating, updating, viewing, and deleting issues.
    • Design a Database Schema: Structure a database to store and manage issue data effectively, including fields like title, description, status, and assigned project.
    • Implement Input Validation: Ensure all user inputs are validated, handling missing or invalid data gracefully.
    As a Quality Assurance Engineer:
    • Write Functional Tests: Use Chai-HTTP to write comprehensive tests for all API endpoints, ensuring they work as expected.
    • Test Edge Cases: Validate how the API handles various edge cases, such as invalid inputs, empty requests, or attempting to update non-existent issues.
    • Ensure API Reliability: Verify that all endpoints handle errors gracefully and respond with the correct status codes and messages.
    • Maintain Test Coverage: Aim for high test coverage to ensure all critical functionalities are tested and bugs are minimized.
    Attachment :

    Personal Library
    June 2024 - July 2024

    Introduction:
    In the Personal Library project, we'll create a backend API to manage a collection of books, including adding, retrieving, updating, and deleting entries. As backend developers, we'll implement the core functionality, and as quality assurance engineers, we'll ensure reliability by writing and running functional tests using Chai-HTTP.

    Role:
  • Back End Developer
  • Quality Assurance Engineer

  • Goals:
    As a Backend Developer:
    • Build a RESTful API: Create endpoints to handle CRUD operations for managing books, including adding, viewing, updating, and deleting book entries.
    • Design a Database Schema: Structure a database to store book information, such as titles, authors, and associated comments.
    • Handle Comments for Books: Implement functionality to allow users to add and retrieve comments for specific books.
    • Implement Input Validation: Ensure user inputs are validated, handling errors and missing data appropriately.
    As a Quality Assurance Engineer:
    • Write Functional Tests: Use Chai-HTTP to write and run functional tests for all API endpoints, verifying correct responses and behaviors.
    • Test Edge Cases: Validate how the API handles invalid inputs, empty requests, and attempts to manipulate non-existent records.
    • Ensure API Reliability: Confirm all endpoints respond with appropriate status codes and error messages in various scenarios.
    • Maintain Comprehensive Test Coverage: Cover all critical functionalities to minimize bugs and ensure the API performs as expected.
    Attachment :

    Sudoku Solver
    June 2024 - July 2024

    Introduction:
    In the Sudoku Solver project, we'll build a backend API to validate and solve Sudoku puzzles. As backend developers, we'll implement the logic to check puzzle validity and find solutions. As quality assurance engineers, we'll ensure accuracy by writing unit tests with Chai and functional tests using Chai-HTTP.

    Role:
  • Back End Developer
  • Quality Assurance Engineer

  • Goals:
    As a Backend Developer:
    • Build Core Functionality: Implement algorithms to validate Sudoku puzzles, check puzzle completion, and generate solutions.
    • Create API Endpoints: Develop endpoints to handle puzzle submissions, validate inputs, and return solutions.
    • Handle Edge Cases: Ensure the solver works for various scenarios, including incomplete puzzles, invalid inputs, and unsolvable configurations.
    As a Quality Assurance Engineer:
    • Write Unit Tests: Use Chai to test individual functions, such as validation logic and solution generation, ensuring they work correctly.
    • Perform Functional Testing: Use Chai-HTTP to test the API endpoints, verifying the responses for valid and invalid requests.
    • Test Edge Cases: Validate how the API handles incomplete, incorrect, or unsolvable puzzles, ensuring appropriate error handling and messages.
    • Maintain High Test Coverage: Write comprehensive tests to cover all critical functionalities, minimizing bugs and ensuring reliability.
    Attachment :

    American British Translator
    June 2024 - July 2024

    Introduction:
    In the American British Translator project, we'll create a backend API to translate text between American and British English. As backend developers, we'll implement the translation logic and API endpoints, and as quality assurance engineers, we'll ensure functionality by writing unit tests with Chai and functional tests using Chai-HTTP.

    Role:
  • Back End Developer
  • Quality Assurance Engineer

  • Goals:
    As a Backend Developer:
    • Develop Translation Logic: Implement algorithms to accurately translate text between American and British English, considering spelling, idioms, and phrasing.
    • Create API Endpoints: Build endpoints to accept text input, specify the translation direction, and return the translated text.
    • Handle Input Validation: Ensure the API properly handles invalid, empty, or missing text inputs with appropriate error responses.
    As a Quality Assurance Engineer:
    • Write Unit Tests: Use Chai to test the translation logic, ensuring the correct conversion of words, phrases, and idioms.
    • Perform Functional Testing: Use Chai-HTTP to test API endpoints, verifying the service responds correctly to valid and invalid requests.
    • Test Edge Cases: Validate the behavior of the translator with special cases, such as texts with mixed languages, unusual formatting, or ambiguous phrases.
    • Maintain Comprehensive Test Coverage: Ensure all critical translation rules and API functionalities are covered to guarantee accuracy and reliability.
    Attachment :

    Backend Development & APIs


    Simple CRUD Apps
    June 2024 - June 2024

    Introduction:
    In the Simple CRUD App project, we'll use Node.js, Express.js, and MongoDB to build an application that performs Create, Read, Update, and Delete operations. We'll test our API using tools like Postman, Insomnia, and Thunder Client, gaining practical experience in backend development, database management, and API testing.

    Role:
    Back End Developer

    Goals:
    • Develop CRUD Functionality: Implement Create, Read, Update, and Delete operations for managing data in a MongoDB database using Node.js and Express.js.
    • Build a RESTful API: Design a RESTful API with organized routes and controllers, following best practices for a clean and maintainable structure.
    • Connect to MongoDB: Set up a MongoDB database, configure connections, and handle data storage and retrieval effectively.
    • Test API Endpoints: Use Postman, Insomnia, and Thunder Client to test each endpoint, ensuring that all routes work as expected and return appropriate responses.
    • Error Handling and Validation: Add error handling and input validation to improve app reliability and prevent invalid data entries.
    • Strengthen Backend Skills: Gain hands-on experience with backend development, database interactions, and API testing tools.
    Attachment :

    Timestamp Microservice
    June 2024 - June 2024

    Introduction:
    In the Timestamp Microservice project, we'll build a service that converts dates between Unix timestamps and UTC format. This project will strengthen our skills in handling date formats and creating APIs to return accurate time data based on user input.

    Role:
    Back End Developer

    Goals:
    • Build an API Endpoint: Create an API that accepts date input and responds with timestamp data in both Unix and UTC formats.
    • Parse and Validate Dates: Implement logic to handle various date formats, parse them correctly, and validate user input.
    • Handle Edge Cases: Ensure the microservice can handle invalid dates, returning appropriate error messages when necessary.
    • Convert Timestamps: Provide accurate conversions between Unix timestamps and UTC date formats based on user input.
    • Deploy the Microservice: Host the microservice on a platform like Heroku, making it accessible online for users to test and interact with.
    • Strengthen API and Backend Skills: Gain hands-on experience building a backend service, parsing data, and handling HTTP requests
    Attachment :

    Request Header Parser Microservice
    June 2024 - June 2024

    Introduction:
    In the Request Header Parser Microservice project, we'll build a service that extracts information from HTTP request headers, such as IP address, language, and browser details. This project will improve our skills in working with request data and creating APIs that respond with relevant user information.

    Role:
    Back End Developer

    Goals:
    • Build an API Endpoint: Create an API that responds to HTTP requests by parsing and returning key header information.
    • Extract User Information: Retrieve details from the request headers, including the user's IP address, language, and operating system.
    • Handle HTTP Requests: Gain experience in handling and responding to HTTP requests within a microservice environment.
    • Format Data for API Response: Organize the extracted header information into a structured, JSON-formatted response.
    • Deploy the Microservice: Host the microservice on a platform like Heroku to make it accessible to users for testing and feedback.
    • Enhance Backend Development Skills: Strengthen skills in backend development, working with HTTP headers, and building API endpoints.
    Attachment :

    URL Shortener Microservice
    June 2024 - June 2024

    Introduction:
    In the URL Shortener Microservice project, we'll build a service that generates shortened URLs for user-provided links and redirects them to the original addresses. This project will enhance our skills in handling URLs, creating APIs, and managing data storage for efficient redirection.

    Role:
    Back End Developer

    Goals:
    • Build an API Endpoint: Create an API that receives a long URL as input and returns a shortened version for easier sharing.
    • Generate Short URLs: Implement logic to convert long URLs into unique, shortened versions using identifiers.
    • Store URLs in a Database: Save both original and shortened URLs in a database for future lookups.
    • Redirect to Original URL: Set up the API to redirect users from the shortened URL back to the original URL when accessed.
    • Handle Input Validation: Ensure valid URL input from users, returning helpful error messages for invalid or unsupported URLs.
    • Deploy the Microservice: Host the microservice on a platform like Heroku, making it accessible for users to test and use.
    • Strengthen Backend Skills: Enhance understanding of URL encoding, database interaction, and HTTP redirects in a backend application.
    Attachment :

    Exercise Tracker
    June 2024 - June 2024

    Introduction:
    In the Exercise Tracker project, we'll build an app to log and track user's exercise activities, including details like type, duration, and date. This project will strengthen our skills in designing APIs, handling user data, and creating a functional tracking system for activity logs.

    Role:
    Back End Developer

    Goals:
    • Build an API to Track Exercises: Create an API that allows users to log exercises with details like description, duration, and date.
    • Set Up User Profiles: Enable users to create profiles that store their exercise logs and associated data.
    • Implement CRUD Operations: Develop endpoints to create, read, update, and delete exercise logs for each user.
    • Filter and Display Exercise Logs: Allow users to retrieve their exercise logs, with optional filtering by date range and limiting results.
    • Store Data in a Database: Use a database to store user profiles and exercise data securely for easy retrieval.
    • Deploy the Application: Host the application on a platform like Heroku, making it accessible for users to log and track their workouts.
    • Enhance API and Backend Skills: Practice building RESTful APIs, managing user input, and creating data-driven applications in a backend environment.
    Attachment :

    File Metadata Microservice
    June 2024 - June 2024

    Introduction:
    In the File Metadata Microservice project, we'll build a service that extracts and returns metadata (like file size, type, and name) from uploaded files. This project will improve our skills in handling file uploads, processing metadata, and building responsive APIs.

    Role:
    SQL Developer

    Goals:
    • Build an API Endpoint for File Uploads: Create an endpoint that allows users to upload files for metadata analysis.
    • Extract File Metadata: Implement functionality to retrieve key file information, such as file name, size, and type.
    • Return Metadata as JSON: Format and return the extracted metadata in a structured JSON response to the user.
    • Handle File Validation: Ensure the service can handle various file types and sizes, providing appropriate error messages for unsupported files.
    • Deploy the Microservice: Host the microservice on a platform like Heroku, making it accessible for users to test file uploads and metadata retrieval.
    • Strengthen Backend Development Skills: Gain practical experience in handling file uploads, extracting metadata, and building data-driven microservices.
    Attachment :

    Relational Database


    Build a Number Guessing Game
    June 2024 - June 2024

    Introduction:
    In the Build a Number Guessing Game project, I'll create an interactive game where players try to guess a randomly chosen number. I'll write logic to track guesses, give feedback, and manage the game flow, sharpening my programming skills with a fun, user-friendly experience.

    Role:
    SQL Developer

    Goals:
    • Implement Game Logic: Create the core functionality of a number guessing game where the player guesses a randomly generated number within a range.
    • Track User Input: Capture and validate user guesses, providing feedback on whether the guess is too high, too low, or correct.
    • Manage Game Flow: Set up game loops to continue until the player guesses correctly, and track the number of attempts made.
    • Provide User Feedback: Display helpful messages to the player, such as indicating the number of guesses left or congratulating them for guessing correctly.
    • Enhance User Interface: Build a simple, user-friendly interface to interact with the game, displaying information and handling input.
    • Practice Core Programming Skills: Strengthen JavaScript programming skills, including logic, loops, conditionals, and handling user input.
    Attachment :

    Build a Periodic Table Database
    June 2024 - June 2024

    Introduction:
    In the Build a Periodic Table Database project, I'll create a database to store information on chemical elements. I'll design tables, set up relationships, and run queries to explore element properties, strengthening my SQL skills while organizing scientific data.

    Role:
    SQL Developer

    Goals:
    • Design a Database Schema: Create tables to store information about chemical elements, such as their names, symbols, atomic numbers, and properties.
    • Establish Relationships: Set up relationships between tables, for example, linking elements to their respective groups or periods on the periodic table.
    • Perform CRUD Operations: Implement SQL queries to create, read, update, and delete element data in the database.
    • Write Queries for Element Information: Develop SQL queries to retrieve details about elements, such as their atomic mass, type, or placement on the periodic table.
    • Normalize the Database: Ensure the database is normalized to avoid data redundancy and maintain data integrity.
    • Enhance SQL and Database Skills: Improve skills in structuring, querying, and managing relational databases with scientific data.
    Attachment :

    Build a Salon Appointment Scheduler
    June 2024 - June 2024

    Introduction:
    In the Build a Salon Appointment Scheduler project, I'll create a database to manage client appointments for a salon. I'll design tables, set up relationships, and write queries to schedule and track appointments, enhancing my SQL skills while building a functional scheduling system.

    Role:
    SQL Developer

    Goals:
    • Design a Database Schema: Create tables to store data about clients, appointments, and salon staff.
    • Establish Relationships: Link tables to associate clients with their appointments and staff with scheduled services.
    • Implement CRUD Operations: Use SQL to create, read, update, and delete appointment records.
    • Write Queries for Scheduling: Write SQL queries to manage and view upcoming appointments, staff availability, and client schedules.
    • Create a User-Friendly Interface: Build a simple interface for salon staff to manage bookings and clients to check availability.
    • Enhance SQL and Backend Skills: Practice backend development by working with databases and handling real-world scheduling data.
    Attachment :

    Build a World Cup Database
    June 2024 - June 2024

    Introduction:
    In the World Cup project, I'll create a database to store data on World Cup teams, players, and match results. I'll design tables, set up relationships, and run queries to explore stats and results, strengthening my SQL and database skills while organizing tournament data.

    Role:
    SQL Developer

    Goals:
    • Design a Database Schema: Create tables to store data about World Cup teams, players, matches, and results.
    • Establish Relationships: Link tables together, such as associating players with teams and matches with their outcomes.
    • Perform CRUD Operations: Implement SQL queries to create, read, update, and delete World Cup data.
    • Write Complex Queries: Develop SQL queries to retrieve specific information, such as top goal scorers, match results, or team performance.
    • Normalize the Database: Organize data efficiently by normalizing the database to reduce redundancy and ensure data consistency.
    • Enhance SQL and Database Skills: Strengthen our ability to design and query relational databases, focusing on real-world sports data.
    Attachment :

    Build a Celestial Bodies Database
    June 2024 - June 2024

    Introduction:
    In the Celestial Bodies project, I'll create a database to store data about planets, moons, stars, and galaxies. I'll design tables, set up relationships, and run queries, building my SQL and database skills while organizing astronomical data.

    Role:
    SQL Developer

    Goals:
    • Design a Database Schema: Create tables to store information about celestial bodies, including planets, moons, stars, and galaxies.
    • Establish Relationships: Set up relationships between tables, such as linking moons to their respective planets.
    • Perform CRUD Operations: Implement and practice basic SQL operations (Create, Read, Update, Delete) to manage celestial body data.
    • Write Complex Queries: Write SQL queries to retrieve specific information, such as finding planets with the most moons or galaxies within a certain distance.
    • Normalize the Database: Organize data efficiently by ensuring the database is normalized to reduce redundancy and improve data integrity.
    • Enhance SQL Skills: Strengthen our ability to design and query relational databases through practical, hands-on experience.
    Attachment :

    EDMI Project


    STS Token Feedback Translator
    Nov 2023 - Dec 2023

    Introduction:
    Develop software testing tool to translate STS Token feedback on three-phase smart meter.

    Role:
    Software Developer

    Goals:
    Deploying testing tool for send a token and decode the feedback data from smart meter based on Class 1 - Non Meter Specific Management STS Association

    Test Point for STS Token Translator:
    • Send STS Class 1 Token to smart meter
    • Retrieve and decrypt bit-string data form meter after token accepted

    DLMS Automated Script Test
    Jun 2022 - Oct 2022

    Introduction:
    DLMS Automated Script Test are build to help EDMI Test Engineer on day to day task for three & single phase meter by script sequential order.

    Role:
    C# Developer

    Goals:
    • Automation Testing
    • Structured and Informative Report
    Test Point for Automated Script Test:
    • Read multiple object value
    • Write multiple object value
    • Invoke method
    • Validate objects value modification

    DLMS Access Right Test
    Jan 2021 - May 2021

    Introduction:
    Reverse engineering access right validation from Conformance Test Tool.

    Role:
    C# Developer

    Goals:
    Test Access Right on current user association and deliver the result on Console App

    Test Point for Access Right Test:
    • Retrieved and parse all DLMS objects from Current Association class
    • Performing test based on object Access Right (Read/Write) on Current Association

    Meter Program Download Mode Automated Test
    May 2020 - Jul 2020

    Introduction:
    Meter Program Download Mode is a special feature in three-phase smart meters for the Saudi Electricity Company Specification Project.

    Role:
    C# Developer

    Goals:
    Deploy automated script to test and validate all test point within Meter Program Download Mode feature

    Test Point for Meter Program Download Mode:
    • Enter/Exit Download Mode
    • Reading Active/Passive Meter Program
    • Insert/Delete Passive Meter Program
    • Activating Passive Meter Program
    • Reserving Activation of Passive Meter Program

    Fahmi's Project Participation

    Automation Project


    Postman - API Test Automation
    June 2024 - June 2024

    Introduction:
    The Postman API Test Automation Certification Program developed by Valentin Despa is an educational program aimed at helping developers learn API testing and automation using Postman. This program, available through platforms like freeCodeCamp and Postman's API Network, offers structured lessons that guide users through the essential aspects of API test automation, including request creation, response validation, and automation scripting in Postman.

    Valentin Despa, a recognized software developer and instructor in the Postman community, created this certification to cater to beginners and professionals looking to deepen their understanding of Postman’s API testing capabilities. Despa’s courses often use practical, hands-on projects, such as a coffee shop API scenario, which allow participants to practice setting up test scenarios and automating workflows in a real-world-like environment.

    Upon completing the course assignments, participants can earn a digital badge to showcase their skills, which can be shared on LinkedIn or other professional networks. While some users have reported delays in badge issuance, Postman’s community and support teams are generally available to help resolve these issues​

    Role:
  • Quality Assurance Engineer

  • Goals:
    1. Establish Foundational Knowledge
    • Train the team in fundamental Postman operations, including creating requests, managing collections, and using environment variables effectively.
    • Build confidence in using Postman as a central tool for API testing
    2. Adopt Best Practices in Test Automation
    • Implement automation scripts within Postman collections using JavaScript for response validation, data-driven testing, and workflow automation.
    • Follow structured approaches for writing reusable and maintainable tests
    3. Simulate Real-World Scenarios
    • Design and execute test cases using projects like the "Artisan Coffee House API", a sample API Despa uses to teach realistic automation scenarios.
    • Create scenarios to test API endpoints for functionality, reliability, and error handling
    4. Enhance Collaboration Through Postman Workspaces
    • Share collections and environments within the team for consistent testing and review.
    • Use Postman’s collaboration features to streamline feedback and iteration during the development and testing lifecycle
    5. Integrate Postman with CI/CD Pipelines
    • Learn to execute Postman tests through GitHub Action in CI/CD pipelines to enable continuous validation.
    • Automate regression test suites and integrate test reports with tools like GitHub Action
    6. Focus on Learning and Certification
    • Encourage team members to complete Valentin Despa’s API Test Automation courses to build comprehensive skills.
    • Use Postman’s certification as a milestone for team development and benchmarking
    7. Expand API Test Coverage
    • Test for functional correctness, edge cases, performance, and security to achieve comprehensive coverage.
    • Leverage data-driven testing techniques taught by Despa to simulate multiple real-world use cases
    8. Develop and Share Knowledge Resources
    • Create internal documentation and tutorials, similar to Despa's educational style, to ensure the team’s continuous learning.
    • Organize workshops or knowledge-sharing sessions to instill best practices
    Attachment :

    Quality Assurance


    Metric-Imperial Converter
    June 2024 - July 2024

    Introduction:
    In the Metric-Imperial Converter project, we'll develop an API to convert measurements between metric and imperial units. As backend developers, we'll implement conversion logic and endpoints, and as quality assurance engineers, we'll ensure reliability by writing unit and functional tests using Mocha, Chai, and Chai-HTTP.

    Role:
  • Back End Developer
  • Quality Assurance Engineer

  • Goals:
    As a Backend Developer:
    • Build an API Endpoint: Create a robust API that accepts user input for metric and imperial measurements and returns accurate conversions.
    • Implement Conversion Logic: Develop precise conversion algorithms for units such as length, weight, and volume.
    • Validate User Input: Ensure the API handles invalid or missing inputs gracefully with appropriate error messages.
    As a Quality Assurance Engineer:
    • Write Unit Tests: Use Mocha and Chai to test individual functions for conversion accuracy and input validation.
    • Perform Functional Testing: Utilize Chai-HTTP to test complete API workflows, including successful conversions and error handling.
    • Ensure Code Reliability: Identify edge cases and write comprehensive tests to ensure consistent performance and accuracy.
    • Maintain Test Coverage: Strive for high test coverage to catch potential bugs and ensure all code paths are tested.
    Attachment :

    Issue Tracker
    June 2024 - July 2024

    Introduction:
    In the Issue Tracker project, we'll develop a backend API to manage and track issues for projects. As backend developers, we'll design endpoints for creating, updating, viewing, and deleting issues. As quality assurance engineers, we'll ensure functionality and reliability by writing and executing functional tests using Chai-HTTP.

    Role:
  • Back End Developer
  • Quality Assurance Engineer

  • Goals:
    As a Backend Developer:
    • Build a RESTful API: Create endpoints to handle CRUD operations for managing issues, including creating, updating, viewing, and deleting issues.
    • Design a Database Schema: Structure a database to store and manage issue data effectively, including fields like title, description, status, and assigned project.
    • Implement Input Validation: Ensure all user inputs are validated, handling missing or invalid data gracefully.
    As a Quality Assurance Engineer:
    • Write Functional Tests: Use Chai-HTTP to write comprehensive tests for all API endpoints, ensuring they work as expected.
    • Test Edge Cases: Validate how the API handles various edge cases, such as invalid inputs, empty requests, or attempting to update non-existent issues.
    • Ensure API Reliability: Verify that all endpoints handle errors gracefully and respond with the correct status codes and messages.
    • Maintain Test Coverage: Aim for high test coverage to ensure all critical functionalities are tested and bugs are minimized.
    Attachment :

    Personal Library
    June 2024 - July 2024

    Introduction:
    In the Personal Library project, we'll create a backend API to manage a collection of books, including adding, retrieving, updating, and deleting entries. As backend developers, we'll implement the core functionality, and as quality assurance engineers, we'll ensure reliability by writing and running functional tests using Chai-HTTP.

    Role:
  • Back End Developer
  • Quality Assurance Engineer

  • Goals:
    As a Backend Developer:
    • Build a RESTful API: Create endpoints to handle CRUD operations for managing books, including adding, viewing, updating, and deleting book entries.
    • Design a Database Schema: Structure a database to store book information, such as titles, authors, and associated comments.
    • Handle Comments for Books: Implement functionality to allow users to add and retrieve comments for specific books.
    • Implement Input Validation: Ensure user inputs are validated, handling errors and missing data appropriately.
    As a Quality Assurance Engineer:
    • Write Functional Tests: Use Chai-HTTP to write and run functional tests for all API endpoints, verifying correct responses and behaviors.
    • Test Edge Cases: Validate how the API handles invalid inputs, empty requests, and attempts to manipulate non-existent records.
    • Ensure API Reliability: Confirm all endpoints respond with appropriate status codes and error messages in various scenarios.
    • Maintain Comprehensive Test Coverage: Cover all critical functionalities to minimize bugs and ensure the API performs as expected.
    Attachment :

    Sudoku Solver
    June 2024 - July 2024

    Introduction:
    In the Sudoku Solver project, we'll build a backend API to validate and solve Sudoku puzzles. As backend developers, we'll implement the logic to check puzzle validity and find solutions. As quality assurance engineers, we'll ensure accuracy by writing unit tests with Chai and functional tests using Chai-HTTP.

    Role:
  • Back End Developer
  • Quality Assurance Engineer

  • Goals:
    As a Backend Developer:
    • Build Core Functionality: Implement algorithms to validate Sudoku puzzles, check puzzle completion, and generate solutions.
    • Create API Endpoints: Develop endpoints to handle puzzle submissions, validate inputs, and return solutions.
    • Handle Edge Cases: Ensure the solver works for various scenarios, including incomplete puzzles, invalid inputs, and unsolvable configurations.
    As a Quality Assurance Engineer:
    • Write Unit Tests: Use Chai to test individual functions, such as validation logic and solution generation, ensuring they work correctly.
    • Perform Functional Testing: Use Chai-HTTP to test the API endpoints, verifying the responses for valid and invalid requests.
    • Test Edge Cases: Validate how the API handles incomplete, incorrect, or unsolvable puzzles, ensuring appropriate error handling and messages.
    • Maintain High Test Coverage: Write comprehensive tests to cover all critical functionalities, minimizing bugs and ensuring reliability.
    Attachment :

    American British Translator
    June 2024 - July 2024

    Introduction:
    In the American British Translator project, we'll create a backend API to translate text between American and British English. As backend developers, we'll implement the translation logic and API endpoints, and as quality assurance engineers, we'll ensure functionality by writing unit tests with Chai and functional tests using Chai-HTTP.

    Role:
  • Back End Developer
  • Quality Assurance Engineer

  • Goals:
    As a Backend Developer:
    • Develop Translation Logic: Implement algorithms to accurately translate text between American and British English, considering spelling, idioms, and phrasing.
    • Create API Endpoints: Build endpoints to accept text input, specify the translation direction, and return the translated text.
    • Handle Input Validation: Ensure the API properly handles invalid, empty, or missing text inputs with appropriate error responses.
    As a Quality Assurance Engineer:
    • Write Unit Tests: Use Chai to test the translation logic, ensuring the correct conversion of words, phrases, and idioms.
    • Perform Functional Testing: Use Chai-HTTP to test API endpoints, verifying the service responds correctly to valid and invalid requests.
    • Test Edge Cases: Validate the behavior of the translator with special cases, such as texts with mixed languages, unusual formatting, or ambiguous phrases.
    • Maintain Comprehensive Test Coverage: Ensure all critical translation rules and API functionalities are covered to guarantee accuracy and reliability.
    Attachment :

    Backend Development & APIs


    Simple CRUD Apps
    June 2024 - June 2024

    Introduction:
    In the Simple CRUD App project, we'll use Node.js, Express.js, and MongoDB to build an application that performs Create, Read, Update, and Delete operations. We'll test our API using tools like Postman, Insomnia, and Thunder Client, gaining practical experience in backend development, database management, and API testing.

    Role:
    Back End Developer

    Goals:
    • Develop CRUD Functionality: Implement Create, Read, Update, and Delete operations for managing data in a MongoDB database using Node.js and Express.js.
    • Build a RESTful API: Design a RESTful API with organized routes and controllers, following best practices for a clean and maintainable structure.
    • Connect to MongoDB: Set up a MongoDB database, configure connections, and handle data storage and retrieval effectively.
    • Test API Endpoints: Use Postman, Insomnia, and Thunder Client to test each endpoint, ensuring that all routes work as expected and return appropriate responses.
    • Error Handling and Validation: Add error handling and input validation to improve app reliability and prevent invalid data entries.
    • Strengthen Backend Skills: Gain hands-on experience with backend development, database interactions, and API testing tools.
    Attachment :

    Timestamp Microservice
    June 2024 - June 2024

    Introduction:
    In the Timestamp Microservice project, we'll build a service that converts dates between Unix timestamps and UTC format. This project will strengthen our skills in handling date formats and creating APIs to return accurate time data based on user input.

    Role:
    Back End Developer

    Goals:
    • Build an API Endpoint: Create an API that accepts date input and responds with timestamp data in both Unix and UTC formats.
    • Parse and Validate Dates: Implement logic to handle various date formats, parse them correctly, and validate user input.
    • Handle Edge Cases: Ensure the microservice can handle invalid dates, returning appropriate error messages when necessary.
    • Convert Timestamps: Provide accurate conversions between Unix timestamps and UTC date formats based on user input.
    • Deploy the Microservice: Host the microservice on a platform like Heroku, making it accessible online for users to test and interact with.
    • Strengthen API and Backend Skills: Gain hands-on experience building a backend service, parsing data, and handling HTTP requests
    Attachment :

    Request Header Parser Microservice
    June 2024 - June 2024

    Introduction:
    In the Request Header Parser Microservice project, we'll build a service that extracts information from HTTP request headers, such as IP address, language, and browser details. This project will improve our skills in working with request data and creating APIs that respond with relevant user information.

    Role:
    Back End Developer

    Goals:
    • Build an API Endpoint: Create an API that responds to HTTP requests by parsing and returning key header information.
    • Extract User Information: Retrieve details from the request headers, including the user's IP address, language, and operating system.
    • Handle HTTP Requests: Gain experience in handling and responding to HTTP requests within a microservice environment.
    • Format Data for API Response: Organize the extracted header information into a structured, JSON-formatted response.
    • Deploy the Microservice: Host the microservice on a platform like Heroku to make it accessible to users for testing and feedback.
    • Enhance Backend Development Skills: Strengthen skills in backend development, working with HTTP headers, and building API endpoints.
    Attachment :

    URL Shortener Microservice
    June 2024 - June 2024

    Introduction:
    In the URL Shortener Microservice project, we'll build a service that generates shortened URLs for user-provided links and redirects them to the original addresses. This project will enhance our skills in handling URLs, creating APIs, and managing data storage for efficient redirection.

    Role:
    Back End Developer

    Goals:
    • Build an API Endpoint: Create an API that receives a long URL as input and returns a shortened version for easier sharing.
    • Generate Short URLs: Implement logic to convert long URLs into unique, shortened versions using identifiers.
    • Store URLs in a Database: Save both original and shortened URLs in a database for future lookups.
    • Redirect to Original URL: Set up the API to redirect users from the shortened URL back to the original URL when accessed.
    • Handle Input Validation: Ensure valid URL input from users, returning helpful error messages for invalid or unsupported URLs.
    • Deploy the Microservice: Host the microservice on a platform like Heroku, making it accessible for users to test and use.
    • Strengthen Backend Skills: Enhance understanding of URL encoding, database interaction, and HTTP redirects in a backend application.
    Attachment :

    Exercise Tracker
    June 2024 - June 2024

    Introduction:
    In the Exercise Tracker project, we'll build an app to log and track user's exercise activities, including details like type, duration, and date. This project will strengthen our skills in designing APIs, handling user data, and creating a functional tracking system for activity logs.

    Role:
    Back End Developer

    Goals:
    • Build an API to Track Exercises: Create an API that allows users to log exercises with details like description, duration, and date.
    • Set Up User Profiles: Enable users to create profiles that store their exercise logs and associated data.
    • Implement CRUD Operations: Develop endpoints to create, read, update, and delete exercise logs for each user.
    • Filter and Display Exercise Logs: Allow users to retrieve their exercise logs, with optional filtering by date range and limiting results.
    • Store Data in a Database: Use a database to store user profiles and exercise data securely for easy retrieval.
    • Deploy the Application: Host the application on a platform like Heroku, making it accessible for users to log and track their workouts.
    • Enhance API and Backend Skills: Practice building RESTful APIs, managing user input, and creating data-driven applications in a backend environment.
    Attachment :

    File Metadata Microservice
    June 2024 - June 2024

    Introduction:
    In the File Metadata Microservice project, we'll build a service that extracts and returns metadata (like file size, type, and name) from uploaded files. This project will improve our skills in handling file uploads, processing metadata, and building responsive APIs.

    Role:
    SQL Developer

    Goals:
    • Build an API Endpoint for File Uploads: Create an endpoint that allows users to upload files for metadata analysis.
    • Extract File Metadata: Implement functionality to retrieve key file information, such as file name, size, and type.
    • Return Metadata as JSON: Format and return the extracted metadata in a structured JSON response to the user.
    • Handle File Validation: Ensure the service can handle various file types and sizes, providing appropriate error messages for unsupported files.
    • Deploy the Microservice: Host the microservice on a platform like Heroku, making it accessible for users to test file uploads and metadata retrieval.
    • Strengthen Backend Development Skills: Gain practical experience in handling file uploads, extracting metadata, and building data-driven microservices.
    Attachment :

    Relational Database


    Build a Number Guessing Game
    June 2024 - June 2024

    Introduction:
    In the Build a Number Guessing Game project, I'll create an interactive game where players try to guess a randomly chosen number. I'll write logic to track guesses, give feedback, and manage the game flow, sharpening my programming skills with a fun, user-friendly experience.

    Role:
    SQL Developer

    Goals:
    • Implement Game Logic: Create the core functionality of a number guessing game where the player guesses a randomly generated number within a range.
    • Track User Input: Capture and validate user guesses, providing feedback on whether the guess is too high, too low, or correct.
    • Manage Game Flow: Set up game loops to continue until the player guesses correctly, and track the number of attempts made.
    • Provide User Feedback: Display helpful messages to the player, such as indicating the number of guesses left or congratulating them for guessing correctly.
    • Enhance User Interface: Build a simple, user-friendly interface to interact with the game, displaying information and handling input.
    • Practice Core Programming Skills: Strengthen JavaScript programming skills, including logic, loops, conditionals, and handling user input.
    Attachment :

    Build a Periodic Table Database
    June 2024 - June 2024

    Introduction:
    In the Build a Periodic Table Database project, I'll create a database to store information on chemical elements. I'll design tables, set up relationships, and run queries to explore element properties, strengthening my SQL skills while organizing scientific data.

    Role:
    SQL Developer

    Goals:
    • Design a Database Schema: Create tables to store information about chemical elements, such as their names, symbols, atomic numbers, and properties.
    • Establish Relationships: Set up relationships between tables, for example, linking elements to their respective groups or periods on the periodic table.
    • Perform CRUD Operations: Implement SQL queries to create, read, update, and delete element data in the database.
    • Write Queries for Element Information: Develop SQL queries to retrieve details about elements, such as their atomic mass, type, or placement on the periodic table.
    • Normalize the Database: Ensure the database is normalized to avoid data redundancy and maintain data integrity.
    • Enhance SQL and Database Skills: Improve skills in structuring, querying, and managing relational databases with scientific data.
    Attachment :

    Build a Salon Appointment Scheduler
    June 2024 - June 2024

    Introduction:
    In the Build a Salon Appointment Scheduler project, I'll create a database to manage client appointments for a salon. I'll design tables, set up relationships, and write queries to schedule and track appointments, enhancing my SQL skills while building a functional scheduling system.

    Role:
    SQL Developer

    Goals:
    • Design a Database Schema: Create tables to store data about clients, appointments, and salon staff.
    • Establish Relationships: Link tables to associate clients with their appointments and staff with scheduled services.
    • Implement CRUD Operations: Use SQL to create, read, update, and delete appointment records.
    • Write Queries for Scheduling: Write SQL queries to manage and view upcoming appointments, staff availability, and client schedules.
    • Create a User-Friendly Interface: Build a simple interface for salon staff to manage bookings and clients to check availability.
    • Enhance SQL and Backend Skills: Practice backend development by working with databases and handling real-world scheduling data.
    Attachment :

    Build a World Cup Database
    June 2024 - June 2024

    Introduction:
    In the World Cup project, I'll create a database to store data on World Cup teams, players, and match results. I'll design tables, set up relationships, and run queries to explore stats and results, strengthening my SQL and database skills while organizing tournament data.

    Role:
    SQL Developer

    Goals:
    • Design a Database Schema: Create tables to store data about World Cup teams, players, matches, and results.
    • Establish Relationships: Link tables together, such as associating players with teams and matches with their outcomes.
    • Perform CRUD Operations: Implement SQL queries to create, read, update, and delete World Cup data.
    • Write Complex Queries: Develop SQL queries to retrieve specific information, such as top goal scorers, match results, or team performance.
    • Normalize the Database: Organize data efficiently by normalizing the database to reduce redundancy and ensure data consistency.
    • Enhance SQL and Database Skills: Strengthen our ability to design and query relational databases, focusing on real-world sports data.
    Attachment :

    Build a Celestial Bodies Database
    June 2024 - June 2024

    Introduction:
    In the Celestial Bodies project, I'll create a database to store data about planets, moons, stars, and galaxies. I'll design tables, set up relationships, and run queries, building my SQL and database skills while organizing astronomical data.

    Role:
    SQL Developer

    Goals:
    • Design a Database Schema: Create tables to store information about celestial bodies, including planets, moons, stars, and galaxies.
    • Establish Relationships: Set up relationships between tables, such as linking moons to their respective planets.
    • Perform CRUD Operations: Implement and practice basic SQL operations (Create, Read, Update, Delete) to manage celestial body data.
    • Write Complex Queries: Write SQL queries to retrieve specific information, such as finding planets with the most moons or galaxies within a certain distance.
    • Normalize the Database: Organize data efficiently by ensuring the database is normalized to reduce redundancy and improve data integrity.
    • Enhance SQL Skills: Strengthen our ability to design and query relational databases through practical, hands-on experience.
    Attachment :

    EDMI Project


    STS Token Feedback Translator
    Nov 2023 - Dec 2023

    Introduction:
    Develop software testing tool to translate STS Token feedback on three-phase smart meter.

    Role:
    Software Developer

    Goals:
    Deploying testing tool for send a token and decode the feedback data from smart meter based on Class 1 - Non Meter Specific Management STS Association

    Test Point for STS Token Translator:
    • Send STS Class 1 Token to smart meter
    • Retrieve and decrypt bit-string data form meter after token accepted

    DLMS Automated Script Test
    Jun 2022 - Oct 2022

    Introduction:
    DLMS Automated Script Test are build to help EDMI Test Engineer on day to day task for three & single phase meter by script sequential order.

    Role:
    C# Developer

    Goals:
    • Automation Testing
    • Structured and Informative Report
    Test Point for Automated Script Test:
    • Read multiple object value
    • Write multiple object value
    • Invoke method
    • Validate objects value modification

    DLMS Access Right Test
    Jan 2021 - May 2021

    Introduction:
    Reverse engineering access right validation from Conformance Test Tool.

    Role:
    C# Developer

    Goals:
    Test Access Right on current user association and deliver the result on Console App

    Test Point for Access Right Test:
    • Retrieved and parse all DLMS objects from Current Association class
    • Performing test based on object Access Right (Read/Write) on Current Association

    Meter Program Download Mode Automated Test
    May 2020 - Jul 2020

    Introduction:
    Meter Program Download Mode is a special feature in three-phase smart meters for the Saudi Electricity Company Specification Project.

    Role:
    C# Developer

    Goals:
    Deploy automated script to test and validate all test point within Meter Program Download Mode feature

    Test Point for Meter Program Download Mode:
    • Enter/Exit Download Mode
    • Reading Active/Passive Meter Program
    • Insert/Delete Passive Meter Program
    • Activating Passive Meter Program
    • Reserving Activation of Passive Meter Program