Skip to content

dennewbie/PollSystem

Repository files navigation

🗳️ PollSystem

A full-stack poll management platform built with Spring Boot (BE) and Angular (FE).
It allows users to create, vote, and manage polls with a modern UI and reliable backend APIs.


🌍 Project Overview

Layer Tech Stack Description Completion Status
🧠 Backend (BE) Java 21 · Spring Boot 3 · PostgreSQL · RabbitMQ Provides REST APIs for poll creation, voting, and user management. 90%
💻 Frontend (FE) Angular (standalone components) · TypeScript · Tailwind Offers a responsive interface for interacting with polls and accounts. 50%

📘 Detailed docs:

Demo

pollSystemVideo_21_10_2025_status.mp4

🚀 Key Features

  • User Authentication (login / registration)
  • 🗳️ Create and manage polls with multiple options
  • 📊 Vote tracking and result aggregation
  • 🧾 REST API documented with OpenAPI / Swagger
  • 🐘 PostgreSQL persistence layer
  • 📨 RabbitMQ message queue integration
  • 💅 Modern Angular UI with Tailwind utilities
  • 🧩 Modular structure — easy to extend FE and BE independently

🧰 Requirements

Component Version
☕ Java 21+
🐘 PostgreSQL 15+
🐇 RabbitMQ 4.0.8+
⚙️ Node.js 16+ (recommended 18+)
📦 Maven 3.9.9+

⚙️ Running Locally

  1. Clone the repo:
    git clone https://github.com/dennewbie/PollSystem.git
    cd PollSystem
    
  2. Start backend (Spring Boot):
cd be
./mvnw spring-boot:run

→ API: http://localhost:8080

  1. Start frontend (Angular):
  cd fe/poll-system-fe
  npm install
  npm start

→ UI: http://localhost:4200

🧭 Next Development

  1. Poll Adding (FE)

  2. Poll Voting (FE)

  3. Retrieve also voted option for each poll (FE + BE)

  4. User's Session Handling (FE + BE)

  5. Registration Implementation (FE)

  6. Reset Password Implementation (FE)

  7. Edit created Poll feature (FE)

  8. "Show All Polls" Buttons (FE + BE)

  9. Settings (FE)

  10. Add Vote to a certain Poll by typing Poll ID (FE)

  11. Add mobile-friendly UI using Angular Material

  12. Add integration tests (REST Assured + Cypress)

🐞 Known Issues

No issues found.

🤝 Contributing

Here’s how you can help:

🍴 Fork the repository

🌱 Create a feature branch

git checkout -b feature/your-feature

💾 Commit your changes

git commit -m "Add your message"

🚀 Push and open a Pull Request

💬 Please keep PRs focused and describe changes clearly. For frontend fixes, include screenshots when possible.

🧭 Project Structure

PollSystem/
│
├── be/                     # Spring Boot backend
│   └── README.md
│
├── fe/
│   └── poll-system-fe/     # Angular frontend
│       └── README.md
│
└── README.md               # You're here! (root overview)

For frontend details, see the Frontend README. For backend details, see the Frontend README.

🧑‍💼 Author

Denny Caruso

About

A full-stack poll management platform built with Spring Boot (BE) and Angular (FE).

Topics

Resources

Stars

Watchers

Forks