budge it - budget tracking web application

31
Powered by Y8 BUDGE IT Always with you, Always in sync.

Upload: samanyou-garg

Post on 23-Jan-2017

33 views

Category:

Engineering


1 download

TRANSCRIPT

Page 1: Budge It - Budget Tracking Web Application

Powered by Y8

BUDGE ITAlways with you,Always in sync.

Page 2: Budge It - Budget Tracking Web Application

Powered by Y8

DEFINE BUDGETTells us what we can’t afford,doesn’t keep us from buying it.

- William Feather

Page 3: Budge It - Budget Tracking Web Application

Powered by Y8

1.WHAT IT DOES

Let’s start from the features.

Page 4: Budge It - Budget Tracking Web Application

Powered by Y8

MAIN FEATURES transactions

Manage your income and expenses.One transaction at a time.

Page 5: Budge It - Budget Tracking Web Application

Powered by Y8

MAIN FEATURES display graphs

It’s not just pretty.It’s the best way to make sense of data.

Page 6: Budge It - Budget Tracking Web Application

Powered by Y8

MAIN FEATURES secure login

SHA-256 hashing for secure password storage.As recommended by NIST.

Place your screenshot here

Page 7: Budge It - Budget Tracking Web Application

Powered by Y8

MAIN FEATURES | brief demo

http://localhost:8000

Page 8: Budge It - Budget Tracking Web Application

Powered by Y8

2.HOW IT WORKS

Talking about architecture.

Page 9: Budge It - Budget Tracking Web Application

Powered by Y8

PROJECT STRUCTUREframeworkWe used a Python-based framework.It has a steeper learning curve, but it helped us later.

Page 10: Budge It - Budget Tracking Web Application

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)

Page 11: Budge It - Budget Tracking Web Application

Powered by Y8

PROJECT STRUCTUREdjango Web Browser

URL mapping

Python Classes

TemplatesStatic Files

Page 12: Budge It - Budget Tracking Web Application

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

Page 13: Budge It - Budget Tracking Web Application

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

Page 14: Budge It - Budget Tracking Web Application

Powered by Y8

3.HOW IT’S BUILT

It’s time to get technical.

Page 15: Budge It - Budget Tracking Web Application

Powered by Y8

TECHNICAL DETAILS | tools

Backend▸ Python▸ Django

Frontend▸ HTML▸ CSS▸ Bootstrap

Code management and scheduling

▸ Git▸ Trello

Page 16: Budge It - Budget Tracking Web Application

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

Page 17: Budge It - Budget Tracking Web Application

Powered by Y8

TECHNICALDETAILSsign-in

Page 18: Budge It - Budget Tracking Web Application

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

Page 19: Budge It - Budget Tracking Web Application

Powered by Y8

4.HOW WE ORGANISED

Making it happen.

Together.

Page 20: Budge It - Budget Tracking Web Application

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

Page 21: Budge It - Budget Tracking Web Application

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

Page 22: Budge It - Budget Tracking Web Application

Powered by Y8

TRELLOscheduling

Page 23: Budge It - Budget Tracking Web Application

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

Page 24: Budge It - Budget Tracking Web Application

Powered by Y8

PROJECT PLANNINGversion control

▸ Integrating from different people

▸ Using GitLab▸ Separate branches

for different features

Page 25: Budge It - Budget Tracking Web Application

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

Page 26: Budge It - Budget Tracking Web Application

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

Page 27: Budge It - Budget Tracking Web Application

Powered by Y8

5.WHAT WE LEARNED

If we could start again...

Page 28: Budge It - Budget Tracking Web Application

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

Page 29: Budge It - Budget Tracking Web Application

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

Page 30: Budge It - Budget Tracking Web Application

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

Page 31: Budge It - Budget Tracking Web Application

Powered by Y8

THANKS!Any questions?