You are on page 1of 3

CSCI 589 – FINAL PROJECT

ABSTRACT

This is the final phase where you get to deliver you fully functional systems. In this step, after completing
the online requirements of the project, we will polish and refine it to be ready for presentation. Then
there will be a presentation for the projects. This is the part where you can be creative and make
something totally different and new.

REQUIRMENTS

In this phase, we are going to add online, connection required functionalities along with a remote user
interface which provides users with remote access to the boards functionalities and information.

ONLINE REQUIREMENTS

For those functionalities that require a higher computing power or huge amount of memory over long
term data records, we are going to implement a server-side program. Implementing this involves two
main parts. Connections on the board application and server application (Like Socket techniques or REST
based on HTTP), and functionalities. If you haven’t yet, choose a server-side programming language and
database technology and start implementing your designs on the server side.

Another important part of the server functionality is to upload every piece of environmental information
that we have on board, which will in turn be used in our remote UI and other server-side tasks. Such as
pattern recognition.

For server communication it is really important that you have a full connection scenario with
implementation details. E.g. Finding the server, starting the connection, closing it, recovering from
losses, time stamping and so on.

SERVER-SIDE DEVELOPMENT
Here are some options that you can use for your server side development, not necessarily though:

 DJANGO PROJECT (Based on Python): Django is a high-level Python Web framework that
encourages rapid development and clean, pragmatic design. Built by experienced developers, it
takes care of much of the hassle of Web development, so you can focus on writing your app
without needing to reinvent the wheel. It’s free and open source. You can use Django-Rest-
Framework to implement RESTFUL APIs for your project.
 Node.JS: This specially help you if you want to go with a socket based connection on your server.
Or if you use PRISM. Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient.
Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
You can use this along with Express.js that can help you implement any type of API.
You also can use other options such as PHP or Ruby. In case you were in need of a IDE and where using
one of these programming languages. You can download a student version of JetBrains Intelli IDEs. E.g.
Pycharm for Python or WebStorm for JS developers. These IDEs not only support their respective
programming languages, but also web technologies required to implement a web interface.

USER INTERFACE

The user interface should help users have access to a remote console that shows everything they could
see on the LED display, as well as alerts. Your UI can be an android application or a web app that is
optimized for smart phone screens. Such app should connect to your server software and fetch
contextual information and from the server app. There are some options you can use for this part. You
can use Android Studio if you are familiar with Android. PhoneGap is for student who are mostly
convenient with HTML and web technologies. You also can just use simple webpage application for this
purpose.

There are no specific aesthetic requirements for this part, but you can use online tools to improve your
application’s visuals. Android SDK has design guidelines you can use. These are called material design
principles.
For web apps you can use libraries such as jQuery mobile, Bootstrap, FlatUI or Semantic UI. These are
CSS libraries that can help you implement a webpage without starting from scratch, which makes them
necessary when you are dealing with deadlines and have no time to come up with your own design. Again,
UI design does not have any specific credit, but readability and data visualization is an integral part of
every embedded or ubiquitous system. Take a look at the following dashboard template:

DELIVERABLES

Your final deliverable has two main parts:

 Artifacts: You have to submit your on-board, server-side and client-side codes and executable
files, along with a document files which contain material necessary to know about your project.
(Submitting a documentation is not necessary)
 Presentation: You then have to register a time to present your work for grading. You have to
bring the boards and starter pack and run your code on it. Please bring anything that was given
to you since we are going to collect them back.

You might also like