A modern, highly interactive web-based Chess application built with Angular 19.
Welcome to nv-chess, a beautifully crafted chess interface designed for an optimal playing and learning experience. With a sleek dark-themed UI, responsive design, and powerful engine integration, this project is built for both casual players and developers interested in modern web application architecture.
- Professional & Distraction-Free UI: A curated dark-themed aesthetic that minimizes distractions and focuses entirely on the board.
- Interactive Chessboard: Powered by Lichess's robust
chessgroundlibrary, offering smooth animations, legal move highlights, and accessible piece movement. - Stockfish Engine Integration: Analyze your games or play against the engine directly in your browser.
- FEN Import/Export: Easily set up specific board positions or start custom matches.
- Responsive Layout: Fully optimized for desktops, tablets, and mobile devices—ensuring your elements never overlap.
- Server-Side Rendering (SSR) Ready: Built with Angular 19's capabilities to maintain lightning-fast load times.
This project uses an Nx Workspace and takes advantage of Angular's standalone components paradigm.
- Framework: Angular 19 (Standalone)
- Board Interface: Chessground
- Styling: Tailwind CSS / Modular SCSS
- Build System: Nx
- Testing: Jest
Follow these steps to get the environment up and running locally.
- Node.js (v18+)
- npm
-
Clone the repository:
git clone https://github.com/your-username/nv-chess.git cd nv-chess -
Install dependencies:
npm install
Start the development server using the Nx CLI:
npx nx serve chess
# OR
npm startNavigate to http://localhost:4200/ in your browser. The app will automatically reload if you change any source files.
To build the project for production:
npx nx build chess
# OR
npm run buildTo run unit tests:
npx nx test chess
# OR
npm run testContributions, issues, and feature requests are welcome! Feel free to check the issues page.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License.