This project is imported from University of Canterbury eng-git It was completed in 2025 as part of a full-year group project course, SENG302 (which I tutored in 2026).
This application no longer has a deployed production environment. However, you can still deploy it locally following the instructions below (please note that you will need to set up environment variables for each injection in application.properties as specified below
Welcome to ContractMe! ContractMe makes organising your renovations easy. You will be able to create an account, create and manage your renovations, add tasks to keep track of what needs doing, and browse public renovations.
- Java >= 17, get the latest openjdk build from jdk.java.net or preferably your package manager. You will probably need the full JDK to use Gradle.
- Spring Boot (including spring boot mail)
- Cucumber for automated acceptance tests
- JUnit 5/Jupiter for automated unit/integration tests
- Geoapify see below for info about API keys
All dependencies, apart from the Java runtime/jdk itself, are managed via gradle, by following the steps below to run the application locally, all required dependencies should be pulled in for you.
If required, contact a maintainer (see contributors below) to gain access
to environment variables such as API keys, otherwise create your own API keys
and an email account and create an env.properties file:
# env.properties
DB_PASSWORD=password
DB_USERNAME=sa
SPRING_MAIL_PASSWORD=<your email password>
SPRING_MAIL_USERNAME=<your email address>
GEOAPIFY_API_KEY=<your geoapify key>See Geoapify for info on the API and how to create a key. Note that currently we only support Gmail with the default configuration, but application.properties can be modified with email settings for other email servers.
From the root directory ...
On Linux:
./gradlew bootRun
On Windows:
gradlew bootRun
By default, the application will run on local port 8080 http://localhost:8080
See our deployed production server here or our deployed staging server here. Note that the staging server is in development and should not be considered stable. NB. These are no longer deployed
Known issues are tracked on GitLab.
The table below has the credentials for default users which can be used for testing.
| Account Type | Password | Notes | |
|---|---|---|---|
| User | seng302.team200.test@gmail.com | P4$$word | To test task pagination, search for renovation "Jack Erskine revamp" on the test server or "Production Test Record" on the production server |
| User | seng302.team200.test1@gmail.com | P4$$word | This user has (a renovation with) only 1 task |
Ensure that your environment variables are set up correctly to run the tests in your local environment.
On Linux:
./gradlew test
./gradlew integration
./gradlew cucumber
On Windows:
gradlew test
gradlew integration
gradlew cucumber
This project incorporates code from the project profanity-filter This covers the following directories:
src/main/java/profanityFilter src/resources/profanityFilterResources
These directories contain both original and modified code from this project. This project includes modifications to files originally licensed under the Apache License 2.0. Changes were made by [Jack Guard] and [Mason Ott] on [09/05/2025]. Changes were made by [Ryan Hamilton] on [20/05/2025].
Again, the URI for this repository can be found at profanity-filter
The license for this project is found at license The terms for the license under which this third party software has been used can be found at Apache-2.0.
- Description: A JavaScript library for interactive maps.
- Version: 1.9.4
- Homepage: https://leafletjs.com/
- License: BSD 2-Clause "Simplified" License
- Copyright: © 2010-2023, Vladimir Agafonkin; © 2010-2011, CloudMade
- Description: Map tiles and geodata.
- Homepage: https://www.openstreetmap.org/
- License: Open Database License (ODbL)
- Copyright: © OpenStreetMap contributors
- SENG302 teaching team
- Rafe Dunlop
- Abhisekh Chand
- Jack Guard
- Jake Connolly
- Ryan Hamilton
- Sean Reitsma
- Mason Ott
The license for ContractMe can be found at COPYING
ContractMe, a web application for managing renovations Copyright (C) 2025 SENG302 Team 200
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.