BitVote is a web application that allows users to predict the percentage change in cryptocurrency prices over a 24-hour period. Users can also view price charts for various coins, log in, sign up, and log out. Additionally, the project is actively working on implementing a forum feature.
BitVote is a Spring Boot project with a Docker Compose setup for containerization and a front-end built using Vite, React, and TypeScript. The project's primary goal is to provide a platform for users to predict cryptocurrency price changes, view coin price charts, and interact with a growing community through the forum feature.
List the key features of your BitVote project:
- Predict cryptocurrency price percentage changes.
- View cryptocurrency price charts.
- User authentication (Login, Sign Up, Logout).
- Forum (Work in progress).
Outline the technologies, libraries, and frameworks used in your project:
Front-end:
- Vite (Front-end build tool)
- React (Front-end library)
- TypeScript (Programming language)
- Axios (HTTP client)
- Chart.js (Chart library)
- React Router DOM (Routing)
- JoyUI/MUI (UI Library)
Back-end:
- Spring Boot (Java framework)
- Spring Security (Security framework)
- Redis (In-memory data store)
- PostgreSQL (Database)
- Lombok (Java library)
- JWT (JSON Web Tokens) authentication
- OpenFeign (REST client)
- Passay (Password validation)
- Docker Compose (Container orchestration)
- CoinGeckoAPI (External API)
-
Java Development Kit (JDK): You will need a compatible version (17 or higher) of JDK installed on your system. You can download the JDK from the Oracle website or use an OpenJDK distribution.
-
Maven: Install Maven if you haven't already. You can download it from the official Maven website and follow the installation instructions.
-
Docker: Install Docker on your system. You can download Docker from the official Docker website and follow the installation instructions.
-
Node.js and npm: Install Node.js and npm (Node Package Manager) on your system. You can download them from the official Node.js website. These are required to build and run the React front end.
-
Vite: Vite is a front-end build tool used in your project. Install Vite globally using npm:
npm install -g create-vite
If applicable, provide detailed installation instructions for both the front end and back end. Include code snippets or commands for installing dependencies and running your project locally.
Front-end:
# Clone the repository
git clone https://github.com/Pouzani/BitVote.git
# Change directory to the front-end folder
cd Front-end
# Install dependencies
npm install
Back-end:
# Change directory to the back-end folder
cd Back-end
# Build the Docker containers
docker compose build
# Start the Docker containers
docker compose up
- Click on the avatar in the bottom of the sidebar to log in/sign up.
- Press on the vote button to vote on the crypto-currency.
- You can click on the crypto-currency to get more details and look at its chart.
To run the BitVote app, follow these steps:
1. Start the Back-end (Spring Boot):
- Open a terminal and navigate to the
Back-end
directory. - Run the following command to start the Spring Boot application:
./mvnw spring-boot:run
2. Start the Front-end (Vite, React, TypeScript):
- Open another terminal and navigate to the
Front-end
directory. - Install dependencies if you haven't already:
npm install
- Start the development server:
npm run dev
The BitVote app should now be running. You can access it by opening your web browser and navigating to http://localhost:8000
.
Currently working on the UI for the forum page.