JustChess is a loose clone of chess.com.
- Javascript
- React
- Redux
- Socket.IO
- Python
- Flask
- Flask-SocketIO
- SQLAlchemy
- PostgreSQL
- Clone the repository
git clone https://github.com/peter-monahan/Just-Chess
- Install python dependencies
pipenv install --dev -r dev-requirements.txt && pipenv install -r requirements.txt
-
Create a
.env
file based on the example provided -
Run the following command to open the pipenv shell
pipenv shell
- Migrate the database
flask db upgrade
- Seed the database
flask seed all
- Run the flask app
flask run
-
Navigate to
react-app
-
Install dependencies
npm install
- Start the frontend server
npm start
The application will now be running at http://localhost:3000/
A logged in user can:
- Send a game invite to another user
- Accept a game invite from another user
- Delete game invites you sent
- Decline game invites you received
A logged in user can:
- Create a game by accepting a game invite
- View the games that you are a part of
- Edit a game by moving a piece when it is your turn
- Delete a game by ending the game.
- A game can end either by checkmate, stalemate, or resignation.
A logged in user can:
- Send a message to another user
- View message history between you and another user
- Edit a previously sent message
- Delete a previously sent message
A logged in user can:
- Send a friend request to another user
- Accept a friend request from another user
- Delete friend requests you sent
- Decline friend requests you received
A logged in user can:
- Add a friend by accepting a friend request
- View current friends
- TODO
- Unfriend a user
- Add ability to chat with your opponent from the game page
- Notify the user when they have a new message, or when a game has been updated
- Allow users to add a profile picture, add a bio, and delete their profile
- Add a search option to find a specific user
- Keep track of game history and assign ranking to users
- Add AI opponents
- Improve overall styling