Inspiration

Our inspiration for this project was our bad experience with the universities online exams service, and we wondered whether we could create our own. Its primary requirements were that it needed to have a better user interface/experience, be able to have text based questions, multi-select multi choice questions and single select multi choice questions.

What it does

Lifely allows administrators to create tests which are then given a unique "test code" by the system. These are similar to the codes that you might find on discount cards or steam (product codes). The students can then login with their student email addresses (or their university/organization login system, not implemented as this would have to be done by the organization) and the test code to take the test. The students answers are saved immediately as they are entered, this ensures that the students answers will not be lost if they log out. When the students are finished they can click the "submit" button which tells the server that they are finished and will prevent them from logging in again. There is also a timer which counts down the time remaining until the test automatically marks itself as completed.

How we built it

As our team was composed of several programmers experienced with python and one experienced with javascript, we decided to build the server using python (with the flask framework). We also decided to use socket.io and only have a few pages that just communicate with the server live and using javascript to change the frontend and communicate with the server. We chose to use jquery over more modern libraries like react or vue as whilst it is slower, it is more reliable and easier to use for rapid prototyping/development, like that which we were going to encounter at the hackathon event.

Challenges we ran into

The biggest challenge that we ran into was the mongodb. As a team we were all very experienced with SQL, so trying to learn, understand and use a no-SQL server for the first time was quite a big challenge. We also tried to host it on a raspberry pi so that we wouldn't just have to locally host it on one of our devices, however after we spent significant time troubleshooting we discovered that the raspberry pi os (raspbian) version that was installed was a 32-bit system, so was not able to run the software for it.

Accomplishments that we're proud of

We are really proud of our testing experience. We think that it is very easy to use and looks nice enough for people to engage with it properly when they're doing the tests. We are also proud that our project works (even in the incomplete state that it is in) as looking back, we all agree that we chose to pursue a project that was maybe to large to complete in the time limit that was given.

We are also proud of our data security system. We have encrypted the password information of our users with bcrypt encryption so that they are secure in the database.

What we learned

During the process of building the system we learned a lot about teamwork and workload distribution. With the benefit of hindsight we probably would have all taken slightly different task and properly planned out what we wanted to be accomplished and by when.

What's next for Lifely Online Exams

We are not sure whether we will keep developing this project. Whilst it was a fun and very educational experience it is not written in any high performance framework (on either the frontend or backend). A change that could be made would be to use react for rendering the frontend components, but whether we'll actually do that, we're not to sure.

Share this project:

Updates