DEV Community

Cover image for Project Requirements
John Doyle for AWS Community Builders

Posted on

Project Requirements

One of the things I love about coding is the ability to start a random side project and try out new things. Over the years, I've played with side projects and participated in hackathons, and I've discovered some best practices for quickly building a solid project.

Recently, I bought a kayak and realized I needed to figure out where to go, when to go, and what are the best things to do. Although there are multiple websites that could help me, I decided to build something that met my exact needs. This side project is called "Holy City Paddlers."

Requirements

Before diving into the code, it's essential to write down some basic goals and key features to minimize the cost of refactoring later.

Requirements typically fall into two primary groups:

  1. Functional
  2. Non-Functional

The easy way to think about these differences are the actions or operations that are needed to take place (functional) vs well.. really everything else - how does it perform, what usability aspects does it need to account for.

Functional Requirements

For this app, there are a few things I want to get from it:

  1. Maps: I want some geolocation based maps, where am I currently, let me plan out my routes between rivers.

  2. Weather Forecasts: Some folks may be all weather kayakers, but I only want to hit the water when its nice and sunny.

  3. River/Tide Information: This is a big one, and it depends on my route. Am I looking to go up-river or down-river. Matching the tides with when I want to go out and where I want to go is critical.

  4. Reviews: While this is personal, it would be great for other people to be able to recommend routes, or even points on the river to launch from.

  5. Wildlife and Landmarks: It would be cool to be able to see historic landmarks along the route.

Non-Functional Requirements

Many things fall under non-functional, but I'm going to kick most of those into the next post around the architecture especially when we thing about performance, reliability etc.

For me, and this project, the number 1 non-functional requirement is around usability.

  1. Usability: I need an easy planning mode coupled with an easy to understand on-water mode.

With these requirements in mind, I'll dive into the architecture in my next post.

AWS Q Developer image

Your AI Code Assistant

Automate your code reviews. Catch bugs before your coworkers. Fix security issues in your code. Built to handle large projects, Amazon Q Developer works alongside you from idea to production code.

Get started free in your IDE

Top comments (0)

Best Practices for Running  Container WordPress on AWS (ECS, EFS, RDS, ELB) using CDK cover image

Best Practices for Running Container WordPress on AWS (ECS, EFS, RDS, ELB) using CDK

This post discusses the process of migrating a growing WordPress eShop business to AWS using AWS CDK for an easily scalable, high availability architecture. The detailed structure encompasses several pillars: Compute, Storage, Database, Cache, CDN, DNS, Security, and Backup.

Read full post

πŸ‘‹ Kindness is contagious

Please leave a ❀️ or a friendly comment on this post if you found it helpful!

Okay