Skip to main content
Version: WIP

✏️ 3.1.5.1 Functional Programming with JavaScript Independent Project

Independent Projects Overview​


Before you begin your project, make sure to take a moment to review the Independent Projects and Code Reviews lesson.

Functional Programming Project Objectives​


For this independent project, build a small JavaScript program that manages a collection of data of your choosing, written in a functional style. Your project does not need a graphical interface - a program run with Node that logs output to the console is fine. The goal is to demonstrate that you can write idiomatic functional JavaScript: pure functions, immutable data, and effective use of map(), filter(), and reduce().

Choose a domain that interests you. Some ideas to get started:

  • A to-do list
  • A budget or expense tracker
  • A workout log
  • A shopping list
  • A personal library of movies or shows you've watched or want to watch

Project Requirements​


Your application will be reviewed for the following objectives:

  • Pure functions - your data-transformation functions don't mutate their inputs or rely on outside mutable state, and given the same input, they always return the same output
  • Immutability - data is updated using non-mutating patterns like spread syntax, map(), or filter(), rather than methods like push(), splice(), or direct property reassignment
  • Effective use of map(), filter(), and/or reduce() in place of for loops, where appropriate
  • Project is in a polished, portfolio-quality state.
  • The prompt's required functionality and baseline project requirements are met.

If you have extra time, consider using recursion for at least one function, composing several small functions together to build a more complex operation, or using a closure or function factory - for example, a function that returns a customized comparison or filter function, or that tracks private state without a class.

What is a polished, portfolio-quality state?​

When a project is both polished and in a portfolio-quality state, this means:

  • You've reviewed your project and your README prior to submitting it to make sure there are no errors or missing information and you are consistent in your indentation, spacing, and code structure.
  • You are following the best practices and coding conventions we teach.

What are the baseline project requirements?​

All independent coding projects at Fidgetech have these baseline requirements:

  • A complete and informative README
  • The project's commit history demonstrates steady, incremental progress rather than a single large commit
  • Completion of the project based on the prompt and objectives. The prompt contains details on the project's theme and features that are not always detailed in the objective. Carefully read through the prompt before submitting to make sure that you are not missing anything.

Submission​


Submit your code for review to the Functional Programming with JavaScript code review on Fidgetech Code Central.

Visit Independent Projects and Code Reviews for details on how to submit, how feedback works, and course completion requirements.