- Built with Spring Boot 3.4.4 and Amazon Corretto 21
- Create and share polls easily β votes are reflected in real-time with bar charts!
- β¨ Real-time vote updates β Live synchronization using WebSocket (STOMP)
- π Bar chart visualization β Instantly see vote results as dynamic charts
- π Sharable poll links β Each poll generates a unique URL for easy sharing
- β‘ Quick-start project structure β Clean domain/service/controller setup
front
.
|-- eslint.config.js
|-- index.html
|-- package-lock.json
|-- package.json
|-- public
| `-- vite.svg
|-- src
| |-- App.css
| |-- App.jsx
| |-- assets
| | `-- react.svg
| |-- components
| | |-- PollBarChart.jsx
| | `-- PollViewer.jsx
| |-- constants
| | `-- chartColors.js
| |-- hooks
| | `-- useLocalStorage.js
| |-- index.css
| |-- main.jsx
| |-- pages
| | |-- CreatePollPage.jsx
| | `-- PollDetailPage.jsx
| `-- services
| |-- api.js
| `-- socket.js
`-- vite.config.js
back
.
|-- build.gradle
|-- gradle
| `-- wrapper
| |-- gradle-wrapper.jar
| `-- gradle-wrapper.properties
|-- gradlew
|-- gradlew.bat
|-- settings.gradle
`-- src
`-- main
`-- java
`-- arkain
`-- dev
`-- back
|-- BackApplication.java
|-- config
| |-- CorsConfig.java
| `-- WebSocketConfig.java
`-- poll
|-- app
| `-- PollService.java
|-- common
| `-- controller
| `-- HealthCheckController.java
|-- controller
| |-- PollController.java
| `-- VoteController.java
|-- domain
| |-- Option.java
| `-- Poll.java
|-- dto
| |-- CreatePollRequest.java
| |-- CreatePollResponse.java
| |-- PollResponse.java
| `-- VoteMessage.java
`-- repository
`-- PollRepository.java
-
Get URL and Port
- You can get the default URL/Port and add URL/Port in the top right.
- Hover on the [Preview]->[Running URL and Port] button in menu bar.
-
Command feature
- You can simply run your script using the shortcut icons on the top right.
- Hover on the [Run]->[Add run command] button in menu bar.
-
SSH Configuration
- This feature is only available for membership users.
- You can SSH to the Arkain container from the outside via the [Menu]->[SSH Configuration] in menu bar.
-
CORS config
- cors config in
back/src/.../config/CorsConfig.javafile - add your front domain in allowedOrigins
- for example:
@Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfigurer() { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("http://localhost:5173", "https://arkain.io") // Add your custom domain except port .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") .allowedHeaders("*") .allowCredentials(true); } }; }
- cors config in
Visit https://arkain.io to support and learn more about using arkain.
To watch usage guides, visit https://docs.arkain.io.