This document provides guidance on approaching an information systems project. It discusses identifying the problem or opportunity, understanding the background and scope, determining feasibility, and considering technical requirements like databases, authentication, and report generation. The document advocates object-oriented concepts, relational databases, and design patterns. It also provides an example of analyzing requirements for a school exam grading system that needs to generate reports more efficiently. Key aspects to consider include identifying user roles and needs, designing database tables and classes, and using tools like Valentina Studio and frameworks that support the model-view-controller pattern. Resources for further information on database design, object-relational mapping, and design patterns are also referenced.
2. what, why, how
so, .... what is it exactly?
collecting, filtering & processing data
create and distribute information
3. what, why, how
and ... why exactly?
support operations, management and decision
making
4. what, why, how
and ... how again?
system analysis & design, database management,
information security
5. how to start
identify a problem or opportunity
unaddressed issue, existing but lacking solution, unidentified
opportunity
get familiar with the background and domain
this is the basis of the proposal. your idea does not exist in a
vacuum
know how far you can go
be ambitious, but back it up.
at the end of the day, you need to pass!!!
6. what you need to know
Best practice
object oriented concepts OOP
relation database systems RDBMS
know a few design patterns
pick the right tools and the right methods
this will allow you to design & build your system
7. always have
a database
some level(s) of authentication
add, edit, delete, list and view
report generation
an efficient solution / clever approach
8. by example
A local primary school is having a problem
generating reports for it's exams. The
process is painstakingly slow. Reports are
required by the school, the teachers, the
students and their parents. The process is
manual. It's is slow, error prone and
vulnerable to loss of data over time.
How can we help them?
9. by example
identify the requirements of the system
what does the system need to do?
1. allow for the creation of exams
2. allow for the entry of marks
3. allow for the viewing of marks
4. generate exam reports
10. by example
identify the actors
who uses the system?
1.an administrator
2.a teacher
3.a student*
11. by example
identify the roles
who can do what?
1.an admin can manage different exams
2.a teacher can manage different marks
3.a students can view their results
12. by example
this is obviously too general
1.log in/authentication,
2.forms for adding,
3. forms for editing,
4.forms for deleting
5.views for listing,
6.views for viewing,
7.searching features
13. by example ... approaching the DB
Assuming you are using OO Concepts (and you should be)
What is a database? collection of tables
What is a table? collection of records
What is a record? collection of attributes
What is a class? state (attributes) + behavior (methods)
how does this work?
14. by example ... approaching the DB
each table in your database should be
represented by a class in your code.
a class is an instance of an object. each
record in your table can therefore have an
object
UML unified modeling language
ORM object relational mapping
15.
16.
17. the tools
your editor
Sublime Text
your design tools
Valentina Studio: manage dbs & draw schemas
XAMPP, WAMP, etc
other stuff
frameworks that leverage MVC
twitter bootstrap (UI purposes)
please try and consider UX
and we can't google & stackoverflow
18. in closing
• it's not all that hard: be willing
• other's have done this before: ask around
• don't complicate things: know whats feasible
19. I did not go as far as you
wanted so, what do you want
to know?