# CodeU Example Project
This is an example chat application. It's complete and functional, but leaves
plenty of room for improvement.
## Step 1: Download Java
Check whether you already have Java installed by opening a console and typing:
```
javac -version
```
If this prints out a version number, then you already have Java and can skip to
step 2. If the version number is less than `javac_1.8`, then you have an old
version of Java and should probably upgrade by following these instructions.
Download the JDK (not the JRE) from [here](http://www.oracle.com/technetwork/java/javase/downloads/jdk9-downloads-3848520.html).
Retry the `javac -version` command **in a new console window** to check the
installation. If you still don't see a version number, then update your `PATH`
environment variable so it contains Java's `bin` directory. Follow [these
directions](https://www.java.com/en/download/help/path.xml) to do so.
## Step 2: Download Maven
This project uses [Maven](https://maven.apache.org/) to compile and run our
code. Maven also manages dependencies, runs the dev server, and deploys to App
Engine.
Download Maven from [here](https://maven.apache.org/download.cgi). Unzip the
folder wherever you want.
Make sure you have a `JAVA_HOME` environment variable that points to your Java
installation, and then add Maven's `bin` directory to your `PATH` environment
variable. Instructions for both can be found
[here](https://maven.apache.org/install.html).
Open a console window and execute `mvn -v` to confirm that Maven is correctly
installed.
## Step 3: Install Git
This project uses [Git](https://git-scm.com/) for source version control and
[GitHub](https://github.com/) to host our repository.
Download Git from [here](https://git-scm.com/downloads).
Make sure Git is on your `PATH` by executing this command:
```
git --version
```
If you don't see a version number, then make sure Git is on your `PATH`.
## Step 4: Setup your repository
Follow the instructions in the first project to get your repository setup.
## Step 5: Run a development server
In order to test changes locally, you'll want to run the server locally, on your
own computer.
To do this, open a console to your `codeu_project_2018` directory and execute this command:
```
mvn clean appengine:devserver
```
This tells Maven to clean (delete old compiled files) and then run a local
App Engine server.
You should now be able to use a local version of the chat app by opening your
browser to [http://localhost:8080](http://localhost:8080).
## Step 6: Make a change!
- Bring down the existing server by pressing `ctrl+c` in the console running the
App Engine devserver.
- Modify a `.java` or `.jsp` file. (Try updating the homepage by editing the
`index.jsp` file.)
- Bring the devserver back up by executing `mvn clean appengine:devserver`
again.
- Refresh your browser to see your changes!