Skip to content

AkbarFikri/freepassBCC-2024

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

BCC University

⚠️⚠️⚠️

Submissions from 2023 students will have much higher priority than submissions from 2022, SAP, or higher students.
Please take note of this before planning to attempt this freepass challenge.

💌 Invitation Letter

Embracing the digital era, we recognize the need for transparent and efficient information management in elections. We're embarking on a groundbreaking project to redefine the democratic process and we want you on board!

We aim to create an innovative election platform with features like candidate campaign forums, user participation, and administrative control. Your expertise is vital, and we're eager to hear your ideas.

Join us on this exciting journey to reshape the future of elections. Your contribution is key!

Minimum Viable Product (MVP)

As we have mentioned earlier, we need technology that can support BCC Election in the future. Please consider these features below:

  • New user can register account to the system ✔️
  • User can login to the system ✔️
  • User can edit their profile account ✔️
  • User can view the candidate's posts ✔️
  • User can comment on candidate’s posts ✔️
  • Users can view information about the candidates ✔️
  • Users can cast their votes for candidates during the specified election period ✔️
  • Admin can promote user to candidate ✔️
  • Admin can view the candidate’s posts ✔️
  • Admin can set the start and end dates for the election period ✔️
  • Admin can delete the user/candidate ✔️
  • Admin can delete the candidate's posts ✔️
  • Admin can delete user comment ✔️
  • Candidate can create, update, delete a post ✔️

🌎 Service Implementation

GIVEN => I am a new user
WHEN  => I register to the system
THEN  => System will record and return the visitor's username

GIVEN => I am a user
WHEN  => I log in to the system
THEN  => System will authenticate and grant access based on user credentials

GIVEN => I am a user
WHEN  => I edit my profile account
THEN  => The system will update my account with the new details

GIVEN => I am a user
WHEN  => I view a candidate's post
THEN  => System will display the selected candidate's post along with its details

GIVEN => I am a user
WHEN  => I comment on a candidate’s post
THEN  => System will record my comment and return it under the candidate’s post

GIVEN => I am a user
WHEN  => I took an action to view candidate's posts
THEN  => System will show a candidate's post

GIVEN => I am a user
WHEN  => I cast my vote for a candidate during the specified election period
THEN  => System will register my vote for the selected candidate

GIVEN => I am an admin
WHEN  => I promote a user to a candidate
THEN  => System will update the user's status to candidate

GIVEN => I am an admin
WHEN => I view a candidate’s posts
THEN => System will display the posts created by the candidate

GIVEN => I am an admin
WHEN  => I set the start and end dates for the election period
THEN  => System will update the election period accordingly

GIVEN => I am an admin
WHEN  => I delete a user or candidate
THEN  => System will remove the user/candidate from the system

GIVEN => I am an admin
WHEN  => I delete a candidate’s post
THEN  => System will show a deletion status message and delete relevant post

GIVEN => I am an admin
WHEN => I delete a user comment
THEN => System will remove the user comment from the candidate's post

GIVEN => I am a candidate
WHEN  => I create a new post
THEN  => System will record and show the creation status message

GIVEN => I am a candidate
WHEN  => I update my post
THEN  => System will apply the changes and show an update status message

GIVEN => I am a candidate
WHEN  => I delete one of my posts
THEN  => System will show a deletion status message and delete relevant post

👪 Entities and Actors

We want to see your perspective about these problems. You can define various types of entities or actors. One thing for sure, there is no true or false statement to define the entities. As long as the results are understandable, then go for it! 🚀

📘 References

You might be overwhelmed by these requirements. Don’t worry, here’s a list of some tools that you could use (it’s not required to use all of them nor any of them):

  1. Example Project
  2. Git
  3. Cheatsheets
  4. REST API
  5. Insomnia REST Client
  6. Test-Driven Development
  7. Clean Architecture
  8. GraphQL
  9. gRPC
  10. Docker Compose

🔪 Accepted Weapons

BEFORE CHOOSING YOUR LANGUAGE, PLEASE VISIT OUR CONVENTION ON THIS PROJECT

Any code that did not follow the convention will be rejected!

  1. Golang (preferred)
  2. Java (preferred)
  3. NodeJS
  4. PHP

You are welcome to use any libraries or frameworks, but we appreciate if you use the popular ones.

🎒 Tasks

The implementation of this project MUST be in the form of a REST, gRPC, or GraphQL API (choose AT LEAST one type).
  1. Fork this repository
  2. Follow the project convention
  3. Finish all service implementations
  4. Write the installation guide of your back-end service in the section below

🧪 API Installation

Write how to run your service in local or development environment here. If you use Docker to serve your DBMS or your server, you will receive bonus points for your submission.

📞 Contact

Have any questions? You can contact either Vinncent or Izra.

🎁 Submission

Please follow the instructions on the Contributing guide.

cheers

This is not the only way to join us.

But, this is the one and only way to instantly pass.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published