BSc Computer Science dissertation and department project, 2019.
Due to the nature of the work, the code and any personal information will not be revealed.
Scroll down for video and to access the full document. Please note that the further implementation has not been tracked in this report. It is shown on the video.
Abstract
An ordered and efficient office solution is essential for any workforce. Staff management systems are a key factor for smooth running, especially for an organization having an extensive number of employees. With this in mind, the decision to renovate the current SLA Database Management System has been considered to make improvements to modernize the processes.
SLADS logo design
SLADS (Student Learning Assistant Database System) will be a web application, with a rich, user-friendly Graphical User Interface, developed using HTML and CSS, used on a daily basis to acquire details of SLAs and modules, in addition to assigning modules and events to the SLAs, and tracking down the application of an SLA. Initially developed for the SLA team, but further can be equipped for use of SLAs and lecturers as well.
This project, in general, aims to enhance efficiency and accuracy of information; all the makings of a good database system. The clients will be interviewed for prospective suggestions on the use of the database and improvements for the new system. The system will then be designed as per the user specifications, built and tested using various methods such as unit testing and user testing as well. This will be iteratively be enhanced in phases according to user feedback and feasibility.
This report provides a brief into the key ideas, principles, approaches and processes that will go into the
completion of this system.
Introduction
Working with the SLA database, as one of the team members, the database is not exactly user-friendly and there is so much that can be automated. Part of the job requires me to come up with innovative ideas on how to manage the database tasks and make the system easier to use.
This is the challenge. A proposed system can be so much more innovative and uncomplicated. A purpose-built database management system to help the team with their work, along with some project management features, is exactly what this application hopes to achieve.
Upon the completion of this project, a fully functional database application, with the possibility of project management tools as an extension, should be provided for use for the SLA team.
Background Literature
Database Systems
Manual filing systems are a rarity in today's digital age. Those times seem like centuries ago. While some people still
proceed to use such systems, it can make tasks like querying for a certain product or tallying reports, a tedious and time-consuming thing to do.
Database Management Systems (DBMS) are the digital equivalent to those filing systems. Use of
this system increases the accuracy and efficiency in businesses and lessens overall costs.
“The human being is a very poorly designed machine tool. The human being excels in coordination. He excels in
relating perception to action. He works best if the entire human being, muscles, senses, and mind, is engaged in the
work.” Peter Drucker
Looking At Systems
In exploring the design of my system, I decided to look at two examples of already existing on-campus systems that are
much like the application I am building. I have had the chance to work with both these systems and have also engaged in
feedback discussions with coworkers, in terms of usability and accessibility.
Design
Generally speaking, clients don’t specifically know what they want from a system. Clients would know better what they use
the system for and how the system is used, so asking potential users about what a system should do is ineffective. To be
successful in acquiring the right requirements from the user, the following acts help:
Don’t assume that you understand what the user wants
Involve the user in the agreement of the scope of the project
Ensure that the requirements are realistic
Avoid talking about technology until requirements are clear
Prioritize the users’ needs
If in doubt, always clarify
It is important to get the right requirements early in the design process so that any irrelevant development or
misunderstandings can be avoided. The work process will be much smoother, and the delivery will be a lot quicker.
Another key concern is the appropriateness of the interface and arrangements for the
features supported by the system. Fundamentally, the progression of interactive design includes four elementary
activities:
Recognizing needs and creating requirements
Developing designs that capture those requirements
Constructing various designs so they can be connected and evaluated
Assessing the product through the course.
A crucial entity that is frequently spoken about in requirements engineering is traceability, which is the ability to trace
things back to the process that produced them. The
assessment of the consequences of making necessary or unnecessary changes to this product can also be evaluated.
Security, Privacy and Legal Issues
“Digital warfare and worldwide cyberattack rates are on the rise, and protection on corporate networks is even more crucial.” Charlie Osborne
Vulnerability is the grade of weakness which is intrinsic in every network and device. Vulnerabilities in a system can often be found at any stage in a system’s life cycle, whether it is in the creation, the implementation or the updating phases.
One of the most common causes of database vulnerabilities is that there are not many checks to make sure the database is not doing something that it shouldn’t be, even though it has been tested for functionality. Data in databases can also be susceptible to hackers, who can capture this sort of traffic to exploit it. To evade such a drawback, the habit of SSL- or TLS-encrypted communication platforms should be used.
A more generalized way to fight these vulnerabilities would be to ensure that the machines, which the application runs on, have firewall permitted and the operating system is up to date, along with the latest security updates installed. If these precautions are practiced, then the danger of being hacked is slight and no data can be taken.
Methodology
You need a solid foundation before going out and looking for work. The first step is system analysis. Collecting information on how the existing system works and establishing its inputs, outputs and relevant details and then identifying and evaluating solutions to the existing problems, which will also be investigated. Interviews with the clients and questionnaires may also be part of the investigation of the problem.
Once the problems with the system have been identified, the user information and requirements will be established and formed. The information will be recorded by visual representations, using UML diagrams and tables.
When looking into the implementation of the system, which will be done throughout, a phased implementation mechanism will be used. This involves the introduction of the new system one part at a time which fits with the iterative process. On each iteration, the system will be evaluated, and the limitations of the system will be identified and worked on.
For over two months, I’ve worked with the SLA team and I’ve come to understand the workflow process, and that they need a reliable database system, to handle all sorts of data retrieval and report generation, whenever required. I have also worked with the system, to know a few of the faults and quirks the system faces. A few of the questions that were asked to the team were:
✓ What do you use the system for?
✓ Where and how do you get the data from?
✓ When do you mostly use the system?
✓ Would you require remote access to the system at any point? (Consideration for mobile app.)
✓ Do you have any trouble accessing the system?
✓ What are the problems you encounter with the system?
And then a few design questions were asked as well, to get a feel of what they would want the system to look like.
✓ How would like the page to look?
✓ Would you like to go ahead with the current colour scheme?
✓ Do you have any suggestions for the design?
The clients (users) were also interviewed and asked about what they would require out of a new system. All faults and complaints from the clients were taken into consideration for the design.
One of the few issues with the system that the users described was the user interface. Some of the buttons were faulty, the colour scheme of the interface made the text hard to read (see Figure 4) and some of the queries would return unpredictable or varying information.
SLA Database: User interface
“I can run a query once by clicking on a button, but search a different item and click on it again, and nothing happens.”
“If I enter [this name] in the database, and run a query for [this name], it should bring up every instance of the name, on clicking Find, but it doesn’t.”
SLA Old System: Database Schema, slightly improved
Another redundant thing is that there are files all over the place, from where information is to be retrieved and referred to at various points in the workflow or application procedure. With the system, this should solve the problem of looking into various files for various answers.
By having a web application, we eliminate the problem of requiring all the different Excel files (for nomination, for assigning modules, for recording profiles, for keeping track of observations, etc.).
“The database should be the only system to look at, for anything to do with SLAs, but there are multiple files to view for every little thing and this is very inefficient.” To quote one of the clients.
Requirements Specification
The SLA Database System (SLADS), within the SLA scheme, will be a database system that offers various SLA services to the SLA team, who deals with the training and handling of SLAs at Middlesex University. They, depending on the time of the year, require the system to perform basic tasks, like monitor the SLA modules and retrieve contact information, if any issues or otherwise.
My goal is to transform the current Microsoft Access database system from an application over a shared drive to a web-enabled database with an improved feature set that would be available for use by the team.
This system may, after completion, be open to a wider scope, accepting SLAs and lecturers to use the system as well, covering nominations of the SLAs for the lecturers and observation forms and evaluations on the SLA end. This would, of course, vary from user to user, allowing different rights to each category.
Requirement F1.1: Retrieval of information about SLAs
One of the top uses of the database system is to review and retrieve information about an SLA, whether it is to contact the SLA or just check to see if everything is complete and up-to-date. Once queried, all the data regarding the SLA should be displayed.
Requirement F1.2: Retrieval of module and lecturer information
To check if modules have enough SLAs, as per request, or to get information from the lecturer and contact them, regarding any concerns.
Requirement F1.3: Ability to check status of an SLA
Some SLAs are rejected in the initial stage of nomination. Some SLAs withdraw due to certain reasons over the course of the year. This would allow the team to know the SLAs current state or status.
Requirement F1.4: Ability to check class schedule of SLA
SLAs have specific schedules they must submit, to cross-check with the timesheets for payment. This is to ensure that the SLA is not doing more than the allotted time, or sometimes, the SLA is subject to spot checks, where the schedule can be checked to retrieve this.
Requirement F1.5: Ability to record events
SLAs have events that run throughout the year, like training, CPDs, the Student Success Festival, and ongoing projects, like the yearbook and event-planning. This needs to be recorded against the SLA’s profile to keep track of what the SLA participates in.
Requirement F1.6: Ability to add/check Mahara profile details
Mahara is an online platform used by the SLA team to record reflections. To complete reflective reports using Mahara at the end of each month is a requirement for payment for the SLAs. The reflections need to be kept track of and if any SLA fails to submit, action needs to be taken.
Read the full list of requirements below.
Workflow
The workflow models illustrate the current workflow of the clients, demonstrating various stages and activities that follow over the course of the year and the different aspects that need to be kept track of.
SLADS workflow model: main
Figure 7 shows the basic workflow that is followed by the team throughout the year. They go through various processes to select, plan and assign SLAs to their modules, along with dealing with lecturer requests and SLA issues.
SLADS workflow model: nomination of SLAs
For all other schools, lecturers are asked to nominate students to be SLAs for the coming year. The lecturers send back responses and the team organizes the requests.
SLADS workflow model: application process
After the nominations, the applications are sent to the students to fill out and send back. Once the students send in the applications, the applications are checked, and candidates are selected for the next process.
SLADS workflow model: assignment of modules
The next step is assigning all the successful students to the modules, by the module and lecturer request. And a lot of
planning and timetabling goes into account. A lot of rules, like no student should be assigned to more than two modules
without exception, a student should’ve confirmed their place at training to be assigned, are also considered.
SLADS workflow model: training
An email for the training registration and other formalities to be completed by the SLA. Everything is prepared for the training and finally, after the training, the SLA can officially start working.
SLADS workflow model: update
The work doesn’t stop after the training. If there’s an event, preparation is required. Even without an event, there is a weekly newsletter that should be distributed. At the end of every month, the Mahara* reflections have to be checked and timesheets have to be approved. And then all contact with the SLAs, whether in office or by email or phone, have to be dealt with and recorded.
*Mahara is an online platform used by the SLA team to record reflections. It is a free to use application and is being used by people all over the world. To complete reflective reports using Mahara, at the end of each month, is a requirement for payment for the SLAs.
Analysis and Design
Conceptual model for SLA system
Figure 13 shows how the objects will be created with respect to the structure of the database. Based on the requirements
and my own understanding of the system, along with a couple of my own ideas to increase efficiency, this model has been
derived.
Note: The above table and diagram may acquire changes due to further analysis and review.
Database
SLADS database schema
The database consists of nine tables. The main table is the SLA table. This table now holds only the relevant details about the SLA. The rest of the tables connect to the SLA table in one way or the other by foreign keys. The tables Observer and Event are not connected for now. This will require some re evaluation.
Some of the design principles I’ve picked up and tried to use in my own system:
➢ Effectiveness: Should meet all desired requirements, as per the user
➢ Efficiency: Qualitative results, in a feasible amount of time
➢ Safety: Password protected system, to ensure data is safe
➢ Utility: A non-complex system, beneficial to the team
➢ Learnability: Provide hovering feedback for buttons and text
➢ Memorability: Using common icons and symbols for buttons, to make it easier to associate
On taking ideas from the literature review, the database is password protected and would require a login. There would also be a session control that automatically logs out the person in case the client forgets to log out, or if the session is idle for too long.
Implementation
This section will include a few screenshots of the work done on the application. A point to note is that the login and administrative rights has not been included into the design yet. This will be worked into at a later time.
The design that I have incorporated into the application is minimalistic and follows closely to the SOBmonitor design used by the university. I picked a red, black and white colour scheme to match the previous system.
SLADS initial design: Adding SLA screen
Adding an SLA individually can be tedious and often, human input can tend to be inaccurate. During the initial review of the
applications, the team downloads all the applications onto a .csv file, which can be uploaded. Once uploaded, the data will
be processed and stored. The option for adding SLAs individually is also added as an option, to have both available to the
staff.
SLADS design: drop-downs and menus
The thought of how to implement security and protection was not given enough consideration. I thought I had an idea of
how to get about the login and user registration, but working in regards with the university ID number or the user IT ID
seemed easy to be easier said than done. It will be implemented at a later time, with a little knowledge on how exactly the
university handles this and the system behind it.
Testing
Note: UC = Use Case
UC01 Tests
UC01 T1: Test that, a user enters valid credentials for login.
UC01 T2: Test that, if a field is left blank, an alert notifies the user to fill all fields.
UC01 T3: Test that, if the user’s details do not match, an alert notifies the user of incorrect details.
UC02 Tests
UC02 T1: Test that, on entering the search page, all SLAs are displayed.
UC02 T2: Test that, if no search term was entered by the user, all SLAs are displayed.
UC02 T3: Test that, if a search was conducted, the user achieved expected results.
UC02 T4: Test that, if a search was conducted, and no results were found, an alert is displayed to the user.
UC03 Tests
UC03 T1: Test that, if a field is left blank, an alert notifies the user to fill all fields.
UC03 T2: Test that, a user can only register events that have a past date.
UC03 T3: Test that, the event appears when searching for an event.
UC04 T4: Test that, if the user adds the event to an SLA, the event appears in their profile.
26
UC04 Tests
UC04 T1: Test that, if a field is left blank, an alert notifies the user to fill all fields.
UC04 T2: Test that, after the user has updated the details, the change does not revert.
UC05 Tests
UC05 T1: Test that, if a user deletes an SLA, the SLA does not appear in the system.
Evaluation
The new and developed SLADS system
The clients have been updated with the progress of this project throughout this time and although the application hasn’t
been completed as of the deadline, it will carry on after the deadline to make sure of completion and implementation for the
clients.
The system will also be re-tested and re-evaluated, in phases as initially planned, at various stages to make sure
that it is safe to use.
This project was done as a part of the Creative Technology course assignment, 2021. You can find the Unity project by clicking the Github icon. ->
Abstract
People are very social creatures. The urge to share stories and messages, and thoughts and opinions about pretty much everything. And when distance creates a barrier, people just find a way to break it - phones. We now have instant messaging, social media and lots of other platforms to share our thoughts.
Words, emojis, images, videos... we have it all. But the question is what's next?
With the use for Augmented Reality taking over and locative technologies, 3D messages could take off. A special surprise for an auspicious occasion or just another pick-me-up for a friend. Reminders in the sky, perhaps? The possibilities are endless.
Concept
Putting major buildings and landmarks, crashed spaceships and flying astronauts in random locations was all fun, but what else? The only limit is your imagination. This started out as an extension to my dissertation project, GlobAR (read more by clicking here), but the more I got into it, the more irrelevant it became.
World Scale AR trial run
While this project is still in early development, it has room to grow. The way the application would work is the user would input an address or location for the message to be "delivered". The user will also be able to select the text and/or image that will be delivered.
The receiver of the message will have to be at the specific location to see the message. It could probably have a notification/alert system that someone's received a message.
I gave it a try for Mother's Day. I put an I Love You message at my mother's workplace and asked her to check it out. Using Unity, Mapbox, and ARCore, I put a 3D object at location co-ordinates which I googled. This was a trial, so I hard coded it in. Ideally, I'd use a library or framework to handle co-ordinates from user entered addresses.
Evaluation
I Love You 3D Message
Even though the positioning and rotation was inaccurate, and the object ending up moving from the front of the office to the parking lot out back, it did prove to be a great idea for a bigger project.
This project was the first independent coding project (with GUI) undertaken by the author. You can find the project by clicking the Github icon. ->
Author Review
Racket was the first language I learned to code with - unless you count HTML, but let's be honest, nobody ever does. With Information Technology being one of my favourite subjects at school, it was a bit disappointing coding and programming were never part of it. And with my luck, Computer Science was being introduced as a subject in my final year. But not to me.
Taking aid from the IT teachers, I got hold of the Python programming worksheets and in my spare time, tried to understand the absolute Greek in front of me. Not only did I leave it as a "future" problem, I didn't even get through the download/installation process.
And then I got to university. First year in Computer Science, we started with Racket. Suddenly everything started making sense. I was breezing through the material and so, let go of the fear and picked up Python again. Now that I understood various terms and jargon, it was a lot easier to go through. Racket was a great learning language, although I'm not quite sure if it's widely used in industry today.
Introducing Racket
Racket is a programming language - a dialect of Lisp and descendant of Scheme. It allows functional programming and other different models and ideas that programmers aren't even aware of. It's not the most infamous when it comes to languages, but it is a great starter and easy to build concepts and training.
The environment, Dr. Racket, is quite intuitive and once you get to know it a little better, can become incredibly easy to understand. It usually works in a read-eval-print loop, or REPL. Imagine your machine just sitting there and waiting for something to read. Once it gets it, it evaluates and then prints the result.
Dr. Racket environment
The Assignment
Using the skills and knowledge we have gained from Racket, the task involved building a game, complete with a user interface, in Racket. The game should allow two players to complete a game.
The minimum your program should be able to do is to allow two players to go
together. This means that your program should:
• Display the state of the game;
• Allow players to make moves;
• Keep players from making illegal moves;
• Detect if one of the players has won and notify the players if this is the case.
Design and Development
To think about the game and design at first, I had to choose the data structure to represent the board. Vectors were easy to work with and were mutable which fit the requirements perfectly, although I did some experimentation with other data structures with code that was already available to us.
TicTacToe in DrRacket interactions window
Next came the rules we had to identify. Of course, to play tictactoe, any cell or position would have 3 distinct values at any time in the game - empty, X or O. I chose to represent this as 0, 1 and 2 respectively. Identifying all the possible wins and losses for each side, and mapping it out on the vector board took a while to do, but it worked out in the end.
The final interface was quite simple and easy to put together. A series of buttons along with a label to announce player turns and notify if a player has won, in a frame, all provided by racket/gui. The below figure shows the final result.
Two-player Racket Tictactoe interface
I even added an extra feature, the Refresh button, to the game as it got extremely annoying to close and re-run the program every time someone wanted to play. Any tictactoe game has three results - Player 1 wins, Player 2 wins or it's a draw. The below figure shows all three endings.
TicTacToe Results
Evaluation
Racket GUI: Noughts and Crosses
Playing around with the GUI elements in Racket and trying to get different versions of it to go along were fun. I tried to have the two players as Mickey Mouse and Donald Duck, and instead of having X's and O's, an image of them would be displayed. As much as I tried though, it wasn't working out.
I opened up to extend it to having a "computer" player as well, although being a beginner, I didn't get very far. This project, being a first-time coder, I learnt my way around data structures and in some way, working with requirement specifications. The bottom line is not everything works!
This project was done for the purpose of the BCSWomen Lovelace Colloquium 2019. You can find the Unity project by clicking the Github icon. ->
Abstract
Imagine this. Classroom setting. The class - dimly lit for a presentation that's going on. Boring. Bland. Barren. Students half asleep. The other half clinging onto hope that it's going to get interesting. Most of the time it never does. Think about it. What would make a class more interesting? Learning about prehistoric times, for example. Would you like to read about it on slides, while a teacher stands and talks in front? Or would it be more exciting to have actual dinosaurs in the class?
Visualizing is a very important part of any industry, and Augmented Reality is all about making things visual and allowing users to see them from all angles. It's innovative and captivating to see what an almost blank paper and a device can do.
What are the boundaries of AR? How far have we come in implementing it? Presentations, CVs, maybe even movie experiences. This poster is going to look at AR, not only in an academic setting, but any presentation scene.
Brief Introduction to Augmented Reality
Augmented Reality allows users to interact with virtual objects in the real world. AR has been around for a long time, and while it has only recently been in the spotlight, it's expected to continually grow in various industries. Its infancy was brought about in the gaming industry through the likes of Minecraft Earth, Harry Potter: Wizards Unite and the ever-popular, Pokemon Go.
AR at work
It hasn't stopped there. There are a few companies using Augmented Reality to advertise products, promote sales and even redeem loyalty points. These companies include the likes of Pepsi Max, Ikea, LaCoste and Pizza Hut. Between these top companies, there are a variety of AR techniques and innovative examples, like AR menus, home furniture visualizations, street entertainment, magazine visuals and more.
This project will use Augmented Reality as an effective medium in poster presentations, business proposals and in-class lectures, to enhance the attention and experience of the audience. In other words, having blank or minimal material for presenting and have a dynamic visual play with AR.
It will also measure the effect and engagement of AR as opposed to other usual or mundane methods.
Unity and Vuforia
My technologies of choice are Unity, using Vuforia. Unity is a cross-platform game engine used to build and oversee many popular games. Popular with beginner game developers for its less-to-no code environment, the game engine pre-calculates various elements in the game environments, like Physics, Character Controls and Game Object Interactions. However, complex games will always require coding.
Vuforia, an AR software development kit (SDK), allows users to work with image targets (among other forms of AR) and process and interpret the outcome accordingly. While there are other competent choices, like ARCore, Vuforia proved to be better suited for simple tasks and easy for a beginners' introduction to AR.
Design and Development
The mission is to create an engaging and interactive demonstration, attracting students and academics alike to my poster, explaining the extraordinary uses of AR. Two initial ideas came to mind when analyzing the surroundings at the event and thinking about what would complement the scenario:
➢ A1: Handheld card with a virtual hologram viewable on a phone. A card with an image target would lay flat on one's hand and a video projection, perpendicular to the card, would be displayed on recognition of the stated image target.
Image target card
This would allow the "poster" to be portable and would not limit me to standing in one place, presenting my demo to my audience. The downside to this is the image target would need to have a lot of recognizable points for it to be detected at an angle. This will reduce the quality and may cause blinking of the hologram output. However, walking around and introducing people to the idea of a Walk-Around poster could be a lot more interesting.
➢ A2: Image target pinned up on the board that plays a video on a virtual surface on recognition of the image target. This would be the traditional sense of recognizing an image and displaying the video accordingly. Furthermore, this would actually be in the form of a poster.
Image target for poster
The image target: The title of the poster. This does seem most sensible in a busy, noisy environment. Keeping it simple and reliable would be the best way to go. Depending on the quality of the image, Vuforia assigns a star rating to it. This indicates how easy it is to identify the target. A black and white image, with a lot of splatters and dots, has a lot of distinguishable features, which is perfect for this title.
The scale of the image, however, is yet to be perfected. As the task requires an A1-size poster to be delivered, the scale of the image target should be relative to the proportion. The below video shows a run of the application on my scrapbook.
The finished application working on a scrapbook/notebook
There are a few lags in between, and the virtual screen does move according to how it thinks the image target is manipulated. The preset image scale might be the probable cause of this situation.
Evaluation
At the event: BCSWomen Lovelace Colloquium 2019, University of Salford, Manchester
Event poster
I have to say that there was a lot of buzz about the so-called "blank poster" at the event. People are used to sticking to the norm and creating traditional posters, whether hand-drawn or printed. I presented the opportunity to divert from this norm, expand the objective while still meeting the deliverable.
The poster itself was a demonstration of the working concept of creatively using AR to modify monotone advertisements and presentations, and it was definitely a huge success. I was able to capture the attention of students, employer representatives, as well as key speakers and academics.
Achievements
This poster won first place in the People's Choice Award category and received top feedback from students, having been spotlighted by a few connections on LinkedIn.
Check out some of the other participant posters and winners here.
House Of The Night Children
-
*KristenRebello / 3 pages*
Short story (an idea for a novel I'm writing) that follows Kara, a normal
teenage girl, who explores the supernatural world, that...
Celebrating 1 Year!
-
[image: Snow]
A year ago today, “A Job Seeker’s Guide” was conceived. With over *500*
page visitors, *80* enrollments and a *4.8* course rating, the frui...