Submissions from 2021 students will have much higher priority than submissions from 2020, SAP, or higher students.
Please take note of this before planning to attempt this freepass challenge.
During this pandemic, it is very difficult for students to find learning materials. but at the same time, students also need additional money to survive during the pandemic. BCC requires a developer to create an online class application system.
This application is intended so that FILKOM students can learn and teach. To accomplish this quickly, BCC will need help. By this letter, we humbly invite you to join us on this journey to figure out the best solution. We cannot wait to see your ideas to overcome this problem.
As we have mentioned earlier, we need technology that can support BCC Masterclass in the future. Please consider these features below:
- A new user can register account to the system
- User can edit their account
- User can see their account
- User can buy a course
- User can view the courses taken
- Admin can delete a user
- Admin can delete an instructor
- Admin can delete a course
- A new instructor can register account to the system
- Instructor can create new course
- Instructor can edit their course
- Instructor can delete their course
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 took an action to edit my account
THEN => System will show a "successfully edited" notification
GIVEN => I am a user
WHEN => I took an action to see my account
THEN => System will show the visitor's profile
GIVEN => I am a user
WHEN => I took an action to buy a course
THEN => System will show a "successfully purchased the course" notification
GIVEN => I am a user
WHEN => I took an action to see my courses
THEN => System will show the courses detail
GIVEN => I am an admin
WHEN => I took an action to delete a user
THEN => System will show a "successfully deleted" notification
GIVEN => I am an admin
WHEN => I took an action to delete an instructor
THEN => System will show a "successfully deleted" notification
GIVEN => I am an admin
WHEN => I took an action to delete a course
THEN => System will show a "successfully deleted" notification
GIVEN => I am a new user
WHEN => I register to the system as an instructor
THEN => System will record and return the instructor's username
GIVEN => I am an instructor
WHEN => I took an action to create a course
THEN => System will record and return the course identity number
GIVEN => I am an instructor
WHEN => I took an action to edit a course
THEN => System will show a "successfully edited" notification
GIVEN => I am an instructor
WHEN => I took an action to delete a course
THEN => System will show a "successfully deleted" notification
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! 🚀
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):
- Example Project
- Git
- Cheatsheets
- REST API
- Insomnia REST Client
- Test-Driven Development
- Clean Architecture
- GraphQL
- gRPC
BEFORE CHOOSING YOUR LANGUAGE, PLEASE VISIT OUR CONVENTION ON THIS PROJECT
Any code that did not follow the convention will be rejected!
- Golang (preferred)
- NodeJS
You are welcome to use any libraries or frameworks, but we appreciate if you use the popular ones.
- Fork this repository
- Follow the project convention
- Finish all service implementations
Please follow the instructions on the Contributing guide.
This is not the only way to join us.
But, this is the one and only way to instantly pass.