The Student Voting Portal is a full-stack project utilizing Python and SpringBoot for the backend and React for the frontend. The portal caters to three distinct user types: normal user, admin, and superuser.
-
Normal user
- Register/Login with email
- Browse all elections
- Vote for elections (only their university)
- Vote for multiple candidates for different positions
- See election results, including votes cast, winner, and percentage of votes
-
Admin
- Create/Edit/Delete elections/positions/candidates
- Add/Remove students in their university
-
Superuser
- All rights as admin, but not just limited to their university
# env is out-of-box, no need to change
cp .env.example .env
# Ctrl-C to stop
docker compose up
- Frontend (default backend is Java): http://localhost:5173
- Backend API docs
- Java (API fields are camelCase): http://localhost:8080/swagger-ui.html
- Python (API fields are snake_case): http://localhost:8000
User Type | University | Password | Comment | |
---|---|---|---|---|
Superuser | Santa Clara University (meaningless) | [email protected] |
super |
|
Admin | Santa Clara University | [email protected] |
admin_scu |
|
Normal User | Santa Clara University | [email protected] |
user1_scu |
voted user |
Normal User | Santa Clara University | [email protected] |
user2_scu |
voted user |
Normal User | Santa Clara University | [email protected] |
user3_scu |
voted user |
Normal User | Santa Clara University | [email protected] |
user4_scu |
voted user |
Normal User | Santa Clara University | [email protected] |
user5_scu |
|
Normal User | Santa Clara University | [email protected] |
user6_scu |
voted user |
Normal User | Santa Clara University | [email protected] |
user7_scu |
voted user |
Normal User | Santa Clara University | [email protected] |
user8_scu |
voted user |
Normal User | Santa Clara University | [email protected] |
user9_scu |
voted user |
Admin | San Jose State University | [email protected] |
admin_sjsu |
|
Normal User | San Jose State University | [email protected] |
user1_sjsu |
|
Normal User | San Jose State University | [email protected] |
user2_sjsu |
# destroy docker container, volume, and relevant images
docker compose down -v --rmi all
- Branch name / commit message can follow commitizen format. (summary)
- Clone to your computer
git clone https://github.com/blue86321/student-voting-portal.git
- Checkout to another branch
git checkout -b NEW_BRANCH_NAME
- Start developing
- Multiple small commits are preferred
- Push to the repo
- Make sure you are sync with the latest code
git checkout master git pull origin master git checkout NEW_BRANCH_NAME git rebase master
- Push
git push origin NEW_BRANCH_NAME
- Make sure you are sync with the latest code
- Create a new
Pull Request
on GitHub GUI