Giter Site home page Giter Site logo

freepass-2024's Introduction

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.

freepass-2024's People

Contributors

dnabil avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.