Powered by Y8
BUDGE ITAlways with you,Always in sync.
Powered by Y8
DEFINE BUDGETTells us what we can’t afford,doesn’t keep us from buying it.
- William Feather
Powered by Y8
1.WHAT IT DOES
Let’s start from the features.
Powered by Y8
MAIN FEATURES transactions
Manage your income and expenses.One transaction at a time.
Powered by Y8
MAIN FEATURES display graphs
It’s not just pretty.It’s the best way to make sense of data.
Powered by Y8
MAIN FEATURES secure login
SHA-256 hashing for secure password storage.As recommended by NIST.
Place your screenshot here
Powered by Y8
2.HOW IT WORKS
Talking about architecture.
Powered by Y8
PROJECT STRUCTUREframeworkWe used a Python-based framework.It has a steeper learning curve, but it helped us later.
Powered by Y8
PROJECT STRUCTURE | framework
▸ Broken down into “apps”▸ Divided by functionalities:
▹ Users▹ Transactions▹ Schedules▹ Statistics
Apps contain templates (HTML based) and functionality (Python code)
Powered by Y8
PROJECT STRUCTUREdjango Web Browser
URL mapping
Python Classes
TemplatesStatic Files
Powered by Y8
PROJECT STRUCTURE | database
▸ MySQL server provided by the school
▸ Tables created by django
Models (i.e. Python objects) give django the parameters needed for the tables.Object Relational Mapping mediates between MySQL and Python
Powered by Y8
PROJECT STRUCTURE | database
Table Function
category_category Used to group transactions together
schedules_schedule Used to plan transactions
transactions_transaction
Used to monitor incomes and expenses
auth_userUsed to authenticate user and store basic information
Powered by Y8
3.HOW IT’S BUILT
It’s time to get technical.
Powered by Y8
TECHNICAL DETAILS | tools
Backend▸ Python▸ Django
Frontend▸ HTML▸ CSS▸ Bootstrap
Code management and scheduling
▸ Git▸ Trello
Powered by Y8
TECHNICAL DETAILS | decisions
▸ Dividing the project into applications
▹ Each for a set of related tasks▹ Keeps files organised▹ Avoids conflicts while editing
▸ Using django’s users table and functions
▹ Password hashing▹ Input sanitisation▹ Authentication
Powered by Y8
TECHNICALDETAILSsign-in
Powered by Y8
TECHNICAL DETAILS | alternatives
▸ Why not PHP and SQL?▹ Interested in using new tools▹ Built-in functions▹ SQL queries done in background▹ Improving knowledge of Python
Powered by Y8
4.HOW WE ORGANISED
Making it happen.
Together.
Powered by Y8
PROJECT PLANNING | decisions
▸ Organise meetings to discuss issues and report progress on a weekly basis
▸ Use instant messaging on a daily basis
▸ All decisions had to be taken by consensus
Powered by Y8
PROJECT PLANNING | meetings
▸ Every meeting had a chair▹ Check progress of the group▹ Propose plans for the following
week▹ Update Trello
▸ Everyone was asked some questions
▹ What progress they did▹ What difficulties they had▹ What were their plans for the
following week
Powered by Y8
TRELLOscheduling
Powered by Y8
PROJECT PLANNING | work division
▸ Project divided into two parts▹ Frontend▹ Backend
Every member chose a side, based on their interests and abilitiesKnowledge was shared, so that everybody could have a complete understanding of the project
Powered by Y8
PROJECT PLANNINGversion control
▸ Integrating from different people
▸ Using GitLab▸ Separate branches
for different features
Powered by Y8
PROJECT PLANNING | ethical
User privacy is very important to us▸ How we protect it: ▸ Maintain the confidentiality of user
data in storage▸ Transparency to users▸ Enable the user to make informed
decisions▸ No copyrighted material used
Powered by Y8
PROJECT PLANNING | ethical
Followed WAI guidelines :▸ Design should be controllable from
other peripherals and not just the mouse
▸ Page should be compatible on several platforms
▸ Use of markups and style sheets should be done where needed
▸ Tables should transform properly▸ Avoid grammatical or sequential
errors
Powered by Y8
5.WHAT WE LEARNED
If we could start again...
Powered by Y8
STARTING AGAIN | changes
▸ Know how to approach a django project▸ Look into other frameworks such as
Spring▸ Be more rigorous with early testing
▸ More group coding sessions▹ Minimises waiting▹ Effective cooperation▹ Dynamic environment
Powered by Y8
STARTING AGAIN | changes
▸ Use Trello all the way through development
▸ Better branching and task splitting▹ More effective branch names▹ Division into apps to be done earlier
▸ Give more importance to side features▹ Easy to implement▹ Add a lot of functionality
▸ Implement more graph interaction▹ Dynamically allow people to pull out
optional payments
Powered by Y8
STARTING AGAIN | possibilities
▸ Splitting up into groups according to apps rather than just a frontend and backend team
▸ Address legal and ethical issues with data protection
▸ Better support for the visually impaired
Powered by Y8
THANKS!Any questions?
Top Related