Project Pulse is a web application designed to support senior design or capstone projects where students work in teams. The goal is to create a structured and transparent environment for students and instructors. By encouraging frequent reporting and peer evaluation, the platform aims to foster collaboration, accountability, and productive team dynamics throughout the project. The web application is available at the following URL: https://projectpulse.team
Students participating in computer science senior design or capstone courses can submit a weekly activity report detailing their contribution to the team project. The activities are categorized to help both the student and the instructor track the type of work being done by each team member. Available categories include:
- Development
- Testing
- Bug Fix
- Communication
- Documentation
- Design
- Planning
- Learning
- Deployment
- Support
- Miscellaneous
This feature ensures transparency and helps the team and instructor assess progress accurately.
In addition to reporting their own contributions, students can submit weekly peer evaluations to assess the performance of their teammates. This feature is designed to address issues like:
- Social loafing (students doing less than their share)
- Free-riding (students who take credit for the team's success without contributing)
- Undesirable team dynamics (conflicts, communication breakdowns, etc.)
Peer evaluations provide a way to identify and address these issues early, enabling the instructor to intervene and promote better team collaboration.
Instructors can view the weekly activity reports and peer evaluations submitted by students. The dashboard provides a way to monitor the progress of each team and identify potential issues that need to be addressed. Instructors can also use the data to provide feedback to students and help them improve their performance.
project-pulse/
├── .github/ # GitHub Actions workflows
├── backend/ # Spring Boot backend (Maven)
├── docker/ # Folder containing configuration files for grafana and prometheus
├── frontend/ # Vue.js frontend (Vite)
├── .gitignore # Git ignore rules for both frontend and backend
├── Dockerfile # Dockerfile for building the Spring Boot application
├── LICENSE # License information
├── NOTICE # Attribution and licensing information
├── README.md # Project documentation
└── docker-compose.yml # Docker Compose file for MySQL, Mailpit, and other services
Spring Boot, Vue.js, MySQL, Docker, Microsoft Azure, etc.
git clone https://github.com/Washingtonwei/project-pulse.git
cd project-pulse
The application requires MySQL for the database and Mailpit for handling emails in development. You can start these services using Docker Compose. This configuration also includes Prometheus, Grafana, and Zipkin for monitoring and tracing, but those are optional for local development. To start the services, run:
docker-compose up -d # Start the services in detached mode
This will start the following services:
- MySQL (port 3306)
- Mailpit (SMTP on port 1025, web interface on port 8025)
- Prometheus (port 9090)
- Grafana (port 3000)
- Zipkin (port 9411)
You can check the status of the services by running:
docker-compose ps # Check the status of the services
Navigate to the backend/ directory and follow the steps to run the backend using Maven.
cd backend/
./mvnw spring-boot:run # Run the Spring Boot application
The backend will be running on http://localhost:80 by default.
Navigate to the frontend/ directory and follow the steps to run the frontend using npm.
cd frontend/
npm install # Install dependencies
npm run dev # Run the development server
The frontend will be running on http://localhost:5173 by default.
You can access the application by visiting http://localhost:5173 in your browser. Mailpit is available at http://localhost:8025, and you can use it to view emails sent by the application.
Here are some default credentials you can use to log in:
As a student:
- Username: john
- Password: 123456
As an instructor:
- Username: bingyang
- Password: 123456
The issue tracker is the preferred channel for bug reports, feature requests, and submitting pull requests.
The Project Pulse application is released under version 2.0 of the Apache License. If you use, modify, or distribute this project, please retain the NOTICE
file, and provide proper attribution by including the following statement in your documentation or product:
"This product includes software developed by Bingyang Wei under the Apache License, Version 2.0."
Any modifications to the project should be clearly marked, and all copyright and attribution notices should be retained.