Welcome to Code Hub! 🚀 This repository serves as my digital playground as I embark on a journey of exploration and innovation while seeking new opportunities. Here, you'll find a collection of my past projects alongside exciting new endeavors. Additionally, I'll be sharing my insights, notes, and recommendations from the vast world of software development.
Feel free to browse through the code, explore the projects, and dive into the knowledge I've gathered along the way. Whether you're a fellow developer, a prospective employer, or simply curious about the world of coding, there's something here for everyone.
I initiated this project to enhance my front-end skills and gain hands-on experience with AWS. Along the way, I faced a lot of challenges such as user sessions, CORS, and WebSocket Configurations. I also had to find a way to execute terminal commands sent from the users safely. Last but not least, AWS charged me even for the free tier (they said T2.nano instances were free - it wasn't).
In a nutshell, this project was my playground for overcoming challenges, enhancing my front-end proficiency and creating user-friendly web applications to improve my portfolio.
Every project in this repo is built with the same technologies.
"Intelect is a magnitude of intensity, not a magnitude of extensity." -Schopenhauer
Backend:
- Java (17)
- Spring Boot (3.1.1)
- Maven (3.6.3)
Frontend:
- JavaScript
- HTML
- CSS
- React (8.11.0)
Containerization:
- Docker (24.0.7)
Deployment:
- AWS
Additional Technologies:
- REST APIs
- WebSockets
- Object Oriented Programming
- Data Structures and Algorithms
- Git (2.34.1)
Make sure you have the following tools installed on your machine:
-
Clone the Repository:
git clone https://github.com/CumaBolat/code-hub.git cd code-hub
-
Frontend Setup:
cd src/main/frontend npm install
-
Backend Setup:
# Go back to CodeHUB directory, # choose either of the following commands cd ../../.. # or cd /code-hub mvn spring-boot:run
-
Access the Application:
When you successfully run the spring application, go to http://localhost:5000 (A spring application usually runs on 8080. However, since AWS Elastic Beanstalk uses apache and apaches listens to port 5000/80. So I changed my application to run on port 5000. You can change it in your local envrionment by opening
application.properties
and deleting the lineserver.port=5000
)Feel free to customize it further or add any additional details based on your specific setup.
Game of Life is a cellular automaton devised by the British mathematician John Horton Conway in 1970. I created this project to explore the game's rules and principles while enhancing my front-end skills. The game is a zero-player game, meaning that its evolution is determined by its initial state, requiring no further input. One interacts with the Game of Life by creating an initial configuration and observing how it evolves.
- Open Game of Life Page:
- Go to the Game of Life page to start the game through the Home page.
- Fill The Grid However You Like:
- Fill the grid with cells by clicking on the cells, use randomize button or select any of the patterns from the dropdown menu.
- Start The Game:
- Start the game by clicking the start button.
- Enjoy The Game:
- Watch the cells evolve and enjoy the game.
-
Grid Controls:
- Start, stop, clear, and randomize the grid to control the simulation.
-
Simulation Speed:
- Adjust the speed of the simulation to observe the evolution at different rates.
-
Grid Size Adjustment:
- Change the size of the grid to accommodate different configurations and resolutions.
-
Pattern Loading:
- Load the grid with prefilled, famous patterns to explore various configurations.
-
Pattern Library:
- View a list of patterns along with their descriptions to understand their behavior and significance.
-
Game Description:
- Access a comprehensive description of Conway's Game of Life to learn about its rules and principles.
- Will add tests.
- Will add more patterns.
- Will add more features to the game.
- Will optimize the code.
- See what happens..
OnlineIDE is a web-based Integrated Development Environment (IDE) that allows you to write and execute code online.
-
Establish a WebSocket Connection:
- Connect to the WebSocket server to enable real-time communication.
-
Create Your Personal Workspace:
- Set up your dedicated workspace to manage your projects efficiently.
-
Start Coding:
- Dive into coding using the advanced features of the OnlineIDE.
-
Submit Your Code:
- Submit your code effortlessly through the integrated system.
-
Advanced Syntax Highlighting:
- Enjoy a visually pleasing coding experience with syntax highlighting.
-
Semi Auto-Completion:
- Accelerate your coding process with semi-automatic code completion.
-
Efficient File Browsing:
- Navigate through your files seamlessly for an organized coding environment.
-
Easy File Creation:
- Create new files easily within the OnlineIDE.
-
Integrated Terminal:
- Access a terminal build with pure HTML, CSS and Javascript directly within the IDE.
-
Secure Execution of Commands in Docker Container:
- Ensure secure execution of commands within isolated Docker container.
- Will add tests.
- Will add multiple languages options.
- Pay off some technichal debt.
- Improve the frontend.
- See what happens..
Contributions are welcome!
This project is licensed under the MIT License.