• about me
  • portfolio
  • contact
  • cv
  • Rant
  • Memory
  • carlnordahl.com
  • TicTacToe

Rant

Java, FXML

Rant is intended as a social media platform where users can unleash their true feelings and rant about anything and everything that bothers or amuses them at the time.

I wrote Rant in Java. I used FXML and Scenebuilder to create the graphics of the application. To make the server, I used the Spring framework. Lastly, I made the database in MySQLWorkbench.

As of now, Rant is a local application, the server and database exists only on my computer. My reason for making Rant was to learn how to build an application with Java, and to get some understanding of how the interaction between a server, a database and a client works. But it is not finished. I would like to keep working on it and eventually publishing it for people to use.

This is the login screen. The user authenticates with username and password. If the user does not have an account, he can open the sign up page by clicking the 'sign up' button.

On this page, the user uploads new 'rants'. The user is allowed 255 characters in total. When posted, the rant will be visible on the user's profile wall and following users' home page, or feed.

This an example home page feed. Posts from followed users are displayed and they can be interacted with by agreeing, disagreeing and commenting.

I chose to have a visible menu bar on all pages of the application for increased maneuverability. The design of the application is mostly functional.

This demovideo showcases the ease of navigating through the app. It also shows how users can view posts, either in their feed or by searching for other users' profiles, and how they can interact with them.

Memoree

Python

I made my own version of the popular card game "Memory". Memoree is a single player game in which the user has to find and memorize matching cards by flipping them over, two at a time. To make the game more interesting, I added difficulty levels to the game.

Memoree is written in Python. I used the PyGame framework to make the game. At the time of making the game, I hadn't used Python in about a year. So other than being a fun project Memoree was a way for me to get familiar with Python again.

In the main menu of the game the player can start the game and select the difficulty level.

Only two cards can be revealed at the same time. When the players reveals a third card, the previous two are hidden again.

When the player wins, a retro style animation shows. The playing cards are spelling 'WIN'.

Designing the game was really entertaining. I wanted it to have a retro look, which I think the thick, black border edges of the buttons and cards portrayed. There are three animations in the game: Setting up the board, winning and losing. The purpose of them was to make the game feel more immersive.

This demo is played in medium difficulty, which means that the player has five minutes to win the game. The cards' positions are randomised each new game. The game esentially works by keeping one list of the icons on each card, and one list of each card's coordinates. When two cards are reavealed and a third one is pressed an algorithm checks if the two revealed cards have the same icons by getting the index of their coordinates in the coordinates list and comparing the icons at the same indexes in the icons list.

carlnordahl.com

HTML, CSS, JavaScript

carlnordahl.com is the website which you are currently visiting. It is my first website project and it started with me wanting to learn HTML. Creating a portfolio website was the perfect project and a personal goal of mine.

It has been an enjoyable project. I really like web development because of the instant feedback loop. Seeing the website taking form with every new line of code in real time is great.

My plan is to of course keep updating carlnordahl.com. Partly by adding new project and partly by upgrading the design and feel of the site as I get more comfortable with HTML, CSS and JavaScript.

TicTacToe

Java

In TicTacToe, the player plays as "X" against the computer, "O". The computer will pick a random square out of the empty squares left on the game board.

I used Java to write TicTacToe. The graphics of the game were made using the JavaSwing framework. I only spent one day on this project, hence why the design is very basic.

The game's main menu. Player can start a new game, or quit.

After the player, X, chooses a tile, the computer, O, picks a random tile out of the unclaimed ones.

When the computer or player gets three in a row, the game is over and the player can choose to play again or go back to the main menu.

Carl Nordahl

2023