Skip to content

Commit b4b8ea7

Browse files
committed
update
1 parent b137018 commit b4b8ea7

19 files changed

Lines changed: 348 additions & 433 deletions

README.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,21 @@
1-
# Own Page
1+
# Portfolio Page
2+
This project is a single page app built with reactjs, typescript, daisyui and tailwindcss.
3+
it is hosted on GitHub pages with a custom domain provided by is-a.dev.
4+
5+
## Highlights
6+
- Landing page visuals and effects
7+
- Responsive design
8+
- Theme support
9+
- Dynamic project showcase loading from a data file
10+
- Search functionality for projects
11+
12+
## Special thanks to
13+
- [is-a.dev](https://is-a.dev) for providing free domain services
14+
- [DaisyUI](https://daisyui.com/) for the beautiful component library
15+
- [TailwindCSS](https://tailwindcss.com/) for the utility-first CSS framework
16+
- [ReactJS](https://reactjs.org/) for the powerful JavaScript library for building
17+
- [TypeScript](https://www.typescriptlang.org/) for adding static types to JavaScript
18+
- [GitHub Pages](https://pages.github.com/) for hosting the project for free
19+
- [FontAwesome](https://fontawesome.com/) for the extensive icon library
20+
- [Google Fonts](https://fonts.google.com/) for providing free web fonts
21+
- [Devicon](https://devicon.dev/) for the technology icons

package-lock.json

Lines changed: 0 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

public/Aether.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Aether
2+
Aether is a lightweight socket transport framework. It provides a basic abstraction layer for serialization of objects and transport over sockets.
3+
4+
## Eon
5+
Eon is the serialization format used by Aether. It is a binary format designed for efficiency and ease of use.
6+
### Utility Classes
7+
The Eon Reader and Writer classes provide methods for reading and writing Eon-encoded data. They support various data types.
8+
### Kotlinx Serialization
9+
Aether integrates with Kotlinx Serialization to allow easy serialization and deserialization of Kotlin data classes to and from Eon format.
10+
Therefore, classes intended for serialization must be annotated with `@Serializable`.
11+
12+
## Socket Transport
13+
Aether provides a socket transport layer that allows for sending and receiving Eon-encoded data over TCP sockets.
14+
### Bridge
15+
Aether includes a bridge component that facilitates communication between different systems or components using the socket transport layer.
16+
The bridge provides useful methods for interacting with the socket, such as sending and receiving packets, yet still allows low-level access to the underlying socket if needed.
17+
### Timestamps
18+
Aether automatically timestamps packets sent over the socket transport, allowing for tracking of message timing.
19+
### ObjectIds
20+
Sent packets can be tagged with objectIds to easily identify the source-type of the data being transmitted.
21+
For example, a packet containing user data might be tagged with an objectId of 1. When a packet is received, the objectId can be used to determine that the data is of type user data.
22+
This is of course fully optional.
23+
24+
## Hooks
25+
Aether provides all its event logic in one place. When initializing either a server or a client, you can provide hooks for various events such as connection established, data received etc.
26+
27+
```kotlin
28+
AetherServer.suspended.start(9999) {
29+
onClientConnected += { bridge ->
30+
println("Client connected: ${bridge.socket.inetAddress.hostAddress}")
31+
}
32+
33+
onClose += {
34+
println("Server is closing.")
35+
}
36+
}
37+
```
38+
39+
## Async I/O
40+
Aether leverages Kotlin Coroutines for asynchronous I/O operations, making it easy to work with non-blocking socket communication.
41+
### Packet listeners
42+
Both client and server have the capability to asynchronously listen for packets.
43+
44+
```kotlin
45+
onPacketReceived += { bridge ->
46+
val (objectId, buffer) = bridge.readPacketBuffer()
47+
48+
println("Packet received with object ID: $objectId")
49+
50+
when (objectId) {
51+
1 -> {
52+
val packet = bridge.decodeWithPayloadType<MyObject>(buffer)
53+
val obj = packet.payload
54+
val timestamp = packet.timestamp
55+
println("Received message: ${obj.message} at $timestamp")
56+
57+
this.broadcast(obj, 1)
58+
}
59+
}
60+
}
61+
```

public/Castl3d-Backend.md

Lines changed: 0 additions & 74 deletions
This file was deleted.

public/Castl3d-Frontend.md

Lines changed: 0 additions & 58 deletions
This file was deleted.

public/Castl3d.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Castl3d
2+
3+
## Overview
4+
Castl3d is a chess application with a Spring boot backend and a simple react frontend.
5+
6+
## Features
7+
- **EasyDefaultBot**: A simple bot implementation that makes random moves and captures pieces when possible.
8+
- **ChessBoard Management**: Handles the state and operations of the chessboard.
9+
- **Game Management**: Manages game sessions, player turns, and game rules.
10+
- **Bot Integration**: Easily create and integrate custom bots using the provided Bot interface.
11+
- **Movement Validation**: Moves are validated on the client, for faster response times, but also on the server for security.
12+
13+
## Creating a bot
14+
To create a bot, head over to the backend side. Bots are fully managed on the backend and dynamically updated on the frontend.

0 commit comments

Comments
 (0)