Server-Side Project

In this project your team will be building a back-end application to consolidate the topics covered so far in the course. You will have seven working days to research, plan and develop your application before you have the opportunity to present your work to your colleagues, instructors and clients.

You have free choice of topic so you have an opportunity to start working on something you feel particularly passionate about. Each group member should come with a suggestion before deciding as a group what to work on. Trainers will be available to answer any questions about project scope or practicality of ideas while you're planning.

You will be building an API which the user will interact with to make at least GET and POST requests. The structure of the data and any additional functionality will depend on the topic you choose.

Tech Stack

This is a back-end project, which means there is no need to build a front-end or use any front-end technologies/frameworks. You must use:

  • Java

  • Spring

  • An SQL database

You are free to use any additional libraries as necessary (eg. to add authentication), but only do so if everyone in the group understands what they are for, how they work and how they fit in to the overall picture. The aim of this project is consolidation and understanding, not adding all the extras you can.

You should create diagrams as part of your planning process. Entity relationship diagrams will help you plan the database structure and class diagrams will help you make the translation to Java. We recommend using an online tool such as Miro or Figma to make collaboration easier, but which one you use is up to you.

Project Management

You should create a public GitHub repository before you start writing any code and post the link on the Discord submissions channel. It is up to you how to manage your branch structure, but we expect to see contributions from every member of the group. Make sure that the most up-to-date working version of your project is merged to the main branch ahead of your presentation.

We recommend using something like a Kanban board to help you manage your time. You can use a free service such as Trello or the built-in tools on GitHub, even something like Google Drive to facilitate collaboration.

How tasks are assigned is up to each group. If you are working individually or in pairs remember that communication is the most important tool you have at your disposal and that many problems will be averted if the whole team has regular check-ins.

You can work on the project outside of normal working hours, but there is no expectation of this. It will be up to each group to decide on how to structure the week to ensure everyone is able to contribute effectively. Don't be tempted to rush off and do extra work without keeping your colleageus in the loop, but also make sure you stick to any commitments you make. Trainers and mentors will not be available outside of working hours.

Presentation

The project will culminate in a presentation to the rest of the cohort along with some invited guests from industry. Each group will have 10 minutes to present their work, plus some time for questions from the audience. Your presentation should include:

  • An introduction to your theme and the motivation behind it

  • A discussion of your planning

  • A demo of your app

  • Discussion of some of the code. What were you particularly proud of? Were there any bugs you found really difficult to squash?

  • Contributions from everyone on the team

Do not go through the code line by line, you won't have time. Try to avoid showing the IDE during the presentation as jumping between files can be very confusing for the viewer and time-consuming for the presenter. Instead use a tool such as Carbon to generate screenshots of code you want to talk about and add them to your slides.

Next Steps

These apps will be the starting point for the client-side projects where you will work in different groups to build a front-end for an unseen app. When you finish work on your app you should make sure that it has been thoroughly tested and that there are no hidden bugs. You should also add a README.md file to your repository describing any setup steps or any other instructions for using your app. Take a look at this article for some tips on writing a good README.

Last updated

Was this helpful?