I, as the broke student or job juggling over-achiever, wish to have a full timeline of my expenses on paper. I would like to track, monthly, all of my expenses, which categories they fall under, and what that month's total income was. Each month will have its own dedicated monthly summary so that trends can be spotted over time. I want to be able to report my monthly income or edit the current month I'm on. If any changes need to be made, I should have the flexibility to make those changes.
Acceptance Criteria
WIREFRAME
ERD
WHEN, the user is either on a month they've already reported the income for, or if you're on a new month without a monthly income, you can either select the 'Edit Month' button under the month name or the 'Add next month...' button below the reported monthly income. If you're on a new month without a reported income, the 'Edit Month' button shouldn't appear and there should only be and 'Add this month...' button.
WHEN either the 'Edit Month' or 'Add this month...' is selected, a modal should appear. Depending on where the user is, a month should automatically be taken into consideration along with a year, and a form will appear that allows you to add your monthly income.
Dependencies
ALL TESTING DATA SHOULD BE CREATED.
ALL NECESSARY API CALLS SHOULD BE WRITTEN. A SEPERATE ISSUE TICKET WILL BE CREATED FOR THIS ONCE FULL FUNCTIONALITY IS MAPPED AND DECIDED (CREATE/EDIT ON MONTHLY INCOME TABLE)
14 - This is a mutual dependency. The timeline page is not entirely complete without the functionality of this feature; however, this feature cannot be tested without, at least, a skeleton of this page created.
Dev Notes
You'll have to take into consideration a lot of different factors. Input validation is one. Putting in conditionals as well as some sort of piece of functionality that checks whether or not the month has been catalogued and renders the buttons conditionally. There should also be some sort of functionality that takes the year and documents it for stretch goal reasons.
Forms are pretty similar across the board:
EXAMPLE FROM SIMPLY BOOKS
BOOKS > NEW.JS
import React from 'react';
import BookForm from '../../components/forms/BookForm';
// TODO: create a reusable form to add/edit book and render in this view
export default function AddBook() {
return <BookForm />;
}
'EDIT' - SEEN WITHIN BOOKS > EDIT > [FIREBASEKEY].JS, DEPENDENT ON FORM COMPONENT FOR COMPLETION
import { React, useEffect, useState } from 'react';
import { useRouter } from 'next/router';
import { getSingleBook } from '../../../api/bookData';
import BookForm from '../../../components/forms/BookForm';
export default function EditBook() {
const [editItem, setEditItem] = useState({});
const router = useRouter();
// TODO: grab the firebasekey
const { firebaseKey } = router.query;
// TODO: make a call to the API to get the book data
useEffect(() => {
getSingleBook(firebaseKey).then(setEditItem);
}, [firebaseKey]);
// TODO: pass object to form
return (<BookForm obj={editItem} />);
}
User Story
I, as the broke student or job juggling over-achiever, wish to have a full timeline of my expenses on paper. I would like to track, monthly, all of my expenses, which categories they fall under, and what that month's total income was. Each month will have its own dedicated monthly summary so that trends can be spotted over time. I want to be able to report my monthly income or edit the current month I'm on. If any changes need to be made, I should have the flexibility to make those changes.
Acceptance Criteria
WIREFRAME
ERD
WHEN, the user is either on a month they've already reported the income for, or if you're on a new month without a monthly income, you can either select the 'Edit Month' button under the month name or the 'Add next month...' button below the reported monthly income. If you're on a new month without a reported income, the 'Edit Month' button shouldn't appear and there should only be and 'Add this month...' button.
WHEN either the 'Edit Month' or 'Add this month...' is selected, a modal should appear. Depending on where the user is, a month should automatically be taken into consideration along with a year, and a form will appear that allows you to add your monthly income.
Dependencies
ALL TESTING DATA SHOULD BE CREATED. ALL NECESSARY API CALLS SHOULD BE WRITTEN. A SEPERATE ISSUE TICKET WILL BE CREATED FOR THIS ONCE FULL FUNCTIONALITY IS MAPPED AND DECIDED (CREATE/EDIT ON MONTHLY INCOME TABLE)
14 - This is a mutual dependency. The timeline page is not entirely complete without the functionality of this feature; however, this feature cannot be tested without, at least, a skeleton of this page created.
Dev Notes
EXAMPLE FROM SIMPLY BOOKS
BOOKS > NEW.JS
BOOKFORM.JS
'EDIT' - SEEN WITHIN BOOKS > EDIT > [FIREBASEKEY].JS, DEPENDENT ON FORM COMPONENT FOR COMPLETION