All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.2a] - 2022-03-27
README.md
links update.
[1.0.2] - 2022-03-27
.env
was missing in the public repository, passwords are exposed anyway so whatever 😵- Docker Frontend Container was not bind to address accessible by Backend Container.
- Missing webpack installations required on a wiped-clean environment in order to run frontend docker container successfully.
- History module type declaration fix via shell script (injecting type definitions manually, as it seems to be broken).
[1.0.1] - 2022-03-27
- Modal Buttons sizing and text coloring.
- Badge sizes
- Case when result would append if only one Budget was found.
[1.0.0] - 2022-03-27
- Pagination, user can browse 6 budgets at once - click on a next page fetches new batch.
- There is room for improvement. I could add the navigations
<Pagination.Prev />
,<Pagination.Next />
, and shrink it a bit with<Pagination.Ellipsis />
. I've made it wide enough so that there could be 7 buttons, giving enough room for proper navigation. Django can in the get query return thenum_pages
to adjust the last number of pagination button, but unfortunatelly, I've got to go do some stuff for Big Data course.
- There is room for improvement. I could add the navigations
/scripts/clean/nodemodules.sh
to remove all node_modules directories/scripts/clean/pycache.sh
to remove all*.pyc
files and__pycache__
directories- English localization of the whole page in
src/config/translation/en.json
- Name of the
clean_start.sh
toone_script_wonder.sh
, so it does not get confused with new cleaning scripts.
[0.11.0] - 2022-03-27
- Implemented the frontend Budget search bar (debounced w/ useCallback)
- Implemented backend support for budget filtering via parametrized search string.
- Handling null-case situation
- Structured frontend/src/types
- Endpoint:
/api/rest/budget/all
->/api/rest/budget/
- Bug, where only one Budget would appear after refresh, even when user had more Budgets.
- Bug, where User couldn't remove users from the Budget.
[0.10.0] - 2022-03-27
- Github Actions Workflows
- Mega Linter for Frontend
backend-mega-linter.yml
- Mega Linter for Backend
frontend-mega-linter.yml
- Other
other.yml
- Mega Linter for Frontend
- Updated
README.md
- Removed the
login
andregister
from reducers/store, as it was made in hurry by dummy me. New key:credentials
. - Abstracted out new components: CredentialForm
- I dislike having any boolean parameters passed anywhere, so I went with polymorphism.
- Tweaked the Mega Linter for Python and resolved issues
- All the Linter errors and warnings
[0.9.2] - 2022-03-26
- API Call Tests for ViewSets on backend
- Introduced Mega-Linter Github Pipeline for Backend
- Automatically Linted w/ Mega-Linter what could've been automatically linted
- Some of the response codes on backend
[0.9.1] - 2022-03-26
- Created project information content in
README.md
[0.9.0] - 2022-03-26
README.md
- Considerations:Views
vsViewSets
- Backend Structure Design Update
[0.8.0] - 2022-03-26
- Manging Users Functionality ([frontend](../frontend/src/pages/logged/budget-container/container-panes/pane-transaction/transaction-header/header-manage-users/ and backend)
- New endpoint:
/api/rest/budget/users/
(post) - New endpoint:
/api/rest/users/all/
(get)
- New endpoint:
- No longer trying to log out response which was not parsed
[0.7.2] - 2022-03-26
- Refactored the
factory
value as internal constants of classes where it does not require to change.
- Now whole Add new Budget! tab is clickable to perform the action.
- Previously: Just the text was opening a modal.
[0.7.1] - 2022-03-26
- Handling situation when a new budget is added by user who has no budgets added yet.
- Handling situation when a new transaction is added by user who has no transactions added yet.
[0.7.0] - 2022-03-26
- API Call for Income.
- Removed the transactions app on Backend
- This package was unnecessary and tightly coupled with budgets which is just a bad design. Transactions (
income
,expense
) don't exist out of Budget context, thus I collapsed the hierarchy into one module to increase cohesion.
- This package was unnecessary and tightly coupled with budgets which is just a bad design. Transactions (
[0.6.3a] - 2022-03-26
- Backend Imports Sorted
- Backend Files Formatted
[0.6.3] - 2022-03-26
- Support for Income Addition on Backend
- Abstracted the AddExpenseTransaction to AddTransaction.
[0.6.2] - 2022-03-26
id
to Budget, Expense and Income serializers- Adding Expenses to Database for given Budgets
- Displaying Expense Transaction on frontend
[0.6.1] - 2022-03-26
- Created Form for Transaction Creation
- The form uses values for categories based on typed
config/database/config.json
, so the potential extension of available categories forincome
andexpense
types is easy and global.
- The form uses values for categories based on typed
Lost tiny bit of sanity on the defaultChecked
property, lol.
[0.6.0] - 2022-03-26
- Backend: Request Handlers for each API Call
- Added Response types for authorization app
- Added Request types for authorization app
[0.6.0-alpha] - 2022-03-25
- In-progress: Creating Request Handlers
- Refactorizations on backend:
- Created new directories
requests
andresponses
- Created new directories
- Hiding Modal after user finishes adding a new budget.
[0.5.0] - 2022-03-25
Frontend Structure & Naming Refactorization
- Support in
tsconfig.json
andwebpack.config.js
for absolute imports.
- Refactorization:
- Commonized Register and Login forms
- Removed
components
in all directories that are not leafs in the tree hierarchy (left only in the very last sub-modules) - Tweaked imports, preferring the absolute in majority of them. Relative imports are separated by
\n
- Commonized model related forms with new reusable
common/modal-form
Modal-Form component.
[0.4.6] - 2022-03-25
- Prepared Display of Transaction Items
[0.4.5] - 2022-03-25
- Displaying the Budgets on frontend UI
- Handling situation when a new
Budget
is added to currently existing BudgetList (appending to current state in redux)
I was fighting for a long time with unexpected behaviour, and as it turns out, the quick rename betrayed me and the logic flew to different condition block, thus making me a fool 🤡.
[0.4.4] - 2022-03-25
- Getting All User Budgets (dispatched via redux store)
- New endpoint:
/rest/api/budget/all
(get)
- New endpoint:
[0.4.3] - 2022-03-25
- Filtering & Display for
Budget
in Django Admin View - Adding new Budget via API Call (integrated)
- New endpoint:
/rest/api/budget/
(post)
- New endpoint:
- Handle new budget API call response on frontend.
[0.4.2] - 2022-03-25
- Changed the backend configuration (
tty: true
indocker-compose
and-e TERM=term-256color
analog inDockerfile
) for colorized output.
Still no tests & CI pipelines 🤡
[0.4.1] - 2022-03-25
- Budget Modal Form
[0.4.0] - 2022-03-25
- Tidied up the Reducers/Creators
- Tidied up API Handling
- Finished handling logged state via redux (with authorization checks on refresh)
- Created new djangoapp: auth and moved there the
RegistrationSerializer
and Login/Register views. - New endpoint:
check-auth
- Created new djangoapp: auth and moved there the
[0.4.0-alpha] - 2022-03-24
- Token Authorization System
- Persistency via storing
token
inlocalStorage
- Login (back/front) and Register (back/front) - API communication
- Password encryption via salted unsafe (!) sha256 algorithm on both frontend and backend
[0.3.5] - 2022-03-24
[0.3.4] - 2022-03-24
- Password Hashing
- Password Verification API Call
[0.3.3] - 2022-03-24
- Handling Form Submit on Frontend
[0.3.2] - 2022-03-24
- Routing (
Router.tsx
)- Budgets View for
/budgets
- Landing page for any other URL
- Budgets View for
- Source Map warnings
[0.3.1] - 2022-03-24
- Extracted Button & Modals to a common component.
[0.3.0] - 2022-03-23
- Frontpage Skeleton:
- Side Tabs (Paginated) for various Budgets
- Search Bar for Budgets
- Add New Budget Button
- Opens up a Modal
- Main Panels
- Openable via the Side Tabs
- Contains a Table with structure: | # | Type | Amount | User | |---|---------|--------|---------| | 1 | Expense | 500 | Marcel | | 2 | Income | 400 | Justyna | | 3 | Expense | 900 | Marcin |
- Side Tabs (Paginated) for various Budgets
[0.2.2] - 2022-03-23
- Register Form on Landing Page
[0.2.1] - 2022-03-23
- React Bootstrap Icons
- Login Form to Landing Page
[0.2.0] - 2022-03-23
- Landing Page Background Stylizations
- Successfully Connected Frontend/Backend via Example API Call
- Lack of type support for
history
(added@types/history
to DevDependencies)
[0.1.1] - 2022-03-23
- Created database models
User
Budget
Expense
(type ofTransaction
)Income
(type ofTransaction
)Transaction
- Created Simple UML Model, though draw.io, available here
[0.1.0] - 2022-03-23
Frontend Dependencies & Packages.
Connected Frontend & Backend via webpack_loader.
- React
- Bootstrap
- Redux
- Lodash
- Axios/Cookie
- Prepared
./frontend/sass
directory:/sass/global/
for globally used styling/sass/components/
for common components/sass/pages/
for specific pages/sass/vendor/
for bootstrap
[0.0.0] - 2022-03-23
Project was initialized.
- Structure:
/backend/
- Based on boilerplate template, w/ my migrations:
- Python~=
3.8
-> Python~=3.10
- Django~=
3
-> Django~=4.0
- Python~=
- Django Rest Framework~=
3.13.1
- Celery
- Based on boilerplate template, w/ my migrations:
/frontend/
- Generated using Webpack CLI
- TypeScript
- SASS
/scripts/
/docs/
- CHANGELOG.md based on keep a changelog
.
- Linters:
- Prettier (frontend)
- Black (backend)
- Pylint (backend)
- PEP8 (backend)
- Safety Checkers:
- Bandit (backend)
- Linters:
- Pipelines:
- I know I should implement them right away and have all of that sort of things already done, but I really want to start some dev coding 🐈
- ... still got to setup frontend-backend, so I'll prioritize that at this moment.