Welcome to the Project Bughound! Check out the live demo below:
To access the demo, use the following credentials:
| Username | Password | Role |
|---|---|---|
| user1 | user1 | User |
| user2 | user2 | Manager |
| Admin |
Bughound is a web-based bug recording and tracking software designed for authorized users. It facilitates efficient management of bugs across multiple products, ensuring streamlined communication and resolution within development teams.
Project.Video.mp4
Key Features:
- User-friendly Interface: Create, edit, and update bug reports effortlessly using a web browser.
- Relational Database Storage: Store error report content in relational tables, accessible via SQL for easy retrieval and analysis.
- Comprehensive Search: Search for bugs based on various fields such as program, severity, status, and more.
- Dynamic Fields: Release and version data dynamically correspond to program changes, ensuring accurate bug tracking.
- Attachments: Attach images, memory dumps, and text files to bug reports for detailed documentation.
- Secure Access: Authorized users required for login, ensuring the security of sensitive bug data.
Contents of the Problem Report:
- Problem Summary: Concise description of the issue encountered.
- Report Type: Categorization of the problem (e.g., coding error, design issue, suggestion).
- Severity: Rating indicating the seriousness of the problem, ranging from minor to fatal.
- Attachments: Additional files or documents relevant to the bug report.
- Reproducibility: Indication of whether the problem can be reproduced, aiding developers in diagnosing and fixing the issue.
- Problem Details: Detailed explanation of the problem, including steps to reproduce and error messages.
- Suggested Fix: Optional suggestion for resolving the issue.
- Reported By: Contact information of the reporter for further clarification, if needed.
- Date Discovered: Date when the problem was initially discovered, assisting in identifying the version affected.
Additional Fields (Optional):
- Functional Area: Categorization of the affected functional area.
- Assigned To: Group or individual responsible for fixing the problem.
- Comments: Space for additional notes or discussions regarding the problem.
- Status: Current status of the bug report (e.g., open, closed, resolved).
- Priority: Assigned priority level indicating the urgency of fixing the problem.
- Resolution: Current resolution status of the problem (e.g., fixed, pending, cannot be reproduced).
Instructions for Setting Up BugHound Project:
-
Clone the Repository: Begin by cloning the BugHound repository to your local machine
-
Navigate to Project Directory: Move into the BugHound project directory
-
Test Data Open the docker-compose.yml file and locate line 16. Uncomment this line to enable insertion of test data into the BugHound database.
-
Start Project Inside Containers: Utilize Docker Compose to initiate the project within containers:
docker-compose up -
Access the Application: Once the containers are up and running, access the BugHound application via your web browser using the following URL:
http://localhost:8080/login -
Login with Default Credentials:
- Username:
admin - Password:
j;0dTY85wlT5zMI
- Username:
-
Begin Bug Tracking: You're now logged in and ready to start tracking bugs efficiently using BugHound. Note: Ensure that Docker and Docker Compose are installed on your system before proceeding with the setup process.
1. Create user: CREATE ROLE bughounduser WITH LOGIN PASSWORD 'bughound123'; CREATE DATABASE bughound OWNER bughounduser; GRANT ALL PRIVILEGES ON DATABASE bughound TO bughounduser; 2. Delete user: REVOKE ALL PRIVILEGES ON DATABASE bughound FROM bughounduser; SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'bughound'; DROP DATABASE bughound; DROP ROLE bughounduser;
1. Cross-Origin Resource Sharing (CORS) Configuration: - In 'BugHoundController.java'(`src/main/java/com/og/bughound/controller/BugHoundController.java`), CORS is configured to allow requests from a specific frontend IP and port. - The base URL for the frontend is set to http://localhost:5173/ @CrossOrigin(origins = "http://192.168.5.186:5173/", allowCredentials = "true") // front end url private String baseUrl = "http://localhost:5173/"; 2. Model Configuration: - Date format for the `BugForm` class is specified as "yyyy-MM-dd". - (`src/main/java/com/og/bughound/model/BugForm.java`) private final String dateFormat = "yyyy-MM-dd"; 3. Default admin user: - Initially an admin user is created to login and they can change the password in frontend(admin edits page) and insert users. - Passwords should be hashed using Bcrypt and then inserted into DB ([Bcrypt Tool](https://www.browserling.com/tools/bcrypt)) - (`bughound_backend/bughound/src/main/resources/schema.sql`) default username: admin default password: j;0dTY85wlT5zMI 4. Application Properties: - Configuration for connecting to the PostgreSQL database is provided in `application.properties` - (`bughound_backend/bughound/src/main/resources/application.properties`) spring.datasource.url=jdbc:postgresql://localhost:5432/bughound spring.datasource.username=bughounduser spring.datasource.password=bughound123 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect spring.sql.init.mode=always spring.jpa.hibernate.naming.physical-strategy=com.og.bughound.config.CustomPhysicalNamingStrategy 5. (`bughound_backend/bughound/pom.xml`): - java version 17 - spring boot version 3.2.4 6. Set JAVA_HOME 7. Build the Project: - After Maven clean and build, the backend can be run using `java -jar target/bughound-0.0.1-SNAPSHOT.jar`.
1. This command will install all the dependencies listed in your package.json file. npm install 2. Configure Backend URL: In (`src/App.tsx`) file, set the backend URL as follows: //backend url const baseUrl = "http://" + window.location.hostname + ":8080"; set backend url 3. Run the project: npm run dev 4. Build the Project: npm run build
Starting Containers: docker-compose up Stopping Containers: docker-compose down Environment Variables: - In your `docker-compose.yml`, ensure that environment variables are properly set to override the properties in your Spring/Database configurations. These environment variables will be used for database username, password, etc. Initializing Database: - If you need to insert test datasets into your database during initialization, uncomment the line in your `docker-compose.yml`: (- ./SampleQuery.sql:/docker-entrypoint-initdb.d/SampleQuery.sql) Cleanup: - After you're done with your Docker containers, it's good practice to delete any unused volumes, images, and containers. You can use Docker commands like `docker volume prune`, `docker image prune`, and `docker container prune` for this purpose.