Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement new Concept Exercise: Dates #1528

Open
junedev opened this issue Nov 17, 2021 · 13 comments
Open

Implement new Concept Exercise: Dates #1528

junedev opened this issue Nov 17, 2021 · 13 comments
Labels
new exercise ✨ x:action/create Work on something from scratch x:knowledge/elementary Little Exercism knowledge required x:module/concept-exercise Work on Concept Exercises x:rep/large Large amount of reputation x:size/large Large amount of work x:status/claimed Someone is working on this issue x:type/content Work on content (e.g. exercises, concepts)

Comments

@junedev
Copy link
Member

junedev commented Nov 17, 2021

Note: The concept was already created, only the exercise is missing now.

Getting Started

If you have not yet contributed to concept exercises before, this task requires some upfront reading to acquire the necessary background knowledge.

Here you can read about what Concept Exercises are and how they are structured:

If you have not done so yet, it is probably also helpful to do a couple of "Learning Exercises" (this is how they are called on the site) yourself. You can also look at the code of an existing concept exercise like bird-watcher (concept for-loops) for reference.

See the documentation above (general documentation), as well as How to implement a Concept Exercise in JavaScript.

Also be aware of these general guidelines.

Goal

The goal here is to create a new concept exercise that teaches working with dates via Date.

The concept needs to be written from scratch, the exercise can be ported from another track (see details below).

Concepts

The following concept needs to be created. You can use the introduction.md file of the concept also as introduction.md file of the exercise. No need to create different content at this point. Additionally, if you want to save some time it is ok to not have an extensive about.md for now. It can also be mainly the introduction.md content, maybe with some additions you would like to make.

  • dates (maybe use "Date and Time" as display name in the config)

Learning Objectives

In the concepts the student should learn about the following topics and then practice them in the concept exercise.

  • how dates/timestamps are represented internally, see e.g. MDN link
  • how to create dates with new Date, incl. some of the commonly used variants
  • Date.parse
  • Date.now
  • getting and setting the date components (getMonth/setMonth etc.)
  • how to calculate a time difference
  • how to compare dates

The about.md file could additionally mention ...

Out of Scope

Prerequisites

  • classes

Other prerequisites should be added as needed to solve the specific exercise.

Exercise Idea

There are two options for exercises from other languages that could be used as a template.

If you port one of these exercises, make sure only to include tasks that actually make sense in JavaScript and add value for the student. Feel free to remove/replace/add tasks as needed.

Resources

Here some links that might be helpful as a starting point and/or for the links section of the concept:

How to proceed

  1. First accept this issue by saying "I'd like to work on this" (no need to wait for a response, just go ahead).
  2. Use this issue to discuss any questions you have, what should be included in the content and what not and to collect more reference material.
  3. Create a PR and set "exercism/javascript" as reviewers. Additionally you can write in #maintaining-javascript on Slack that your PR is ready for review. Once you incorporated any critical feedback that the reviewer might give you and the PR is approved, it will be merged by a maintainer.
@junedev junedev added help wanted new exercise ✨ x:action/create Work on something from scratch x:knowledge/elementary Little Exercism knowledge required x:module/concept-exercise Work on Concept Exercises x:type/content Work on content (e.g. exercises, concepts) x:size/large Large amount of work labels Nov 17, 2021
@JaPrad
Copy link
Contributor

JaPrad commented Nov 30, 2021

I'd like to work on this!!

@junedev junedev added x:status/claimed Someone is working on this issue and removed help wanted labels Nov 30, 2021
@JaPrad
Copy link
Contributor

JaPrad commented Dec 6, 2021

Hey @junedev! Just wanted to ask if we can merge the concept first and then exercise?
Or both together?

I think this will be different from the freelancer rate improvement issue as in that case we already had a corresponding exercise.

@junedev
Copy link
Member Author

junedev commented Dec 6, 2021

Yes, you can create a separate PR for the concept first if you like.

@JaPrad
Copy link
Contributor

JaPrad commented Dec 23, 2021

Hey @junedev, @SleeplessByte, an issue here
I ran the command npx babel-node scripts/format from my Windows PowerShell terminal. It gives this output

npx: installed 1 in 12.205s
command not found: babel-node

What to do?

@SleeplessByte
Copy link
Member

I think it's because there is no PS1 variant in the scripts folder.

Do you happen to have git bash? That's what I use on my windows to run these. Alternatively, it should work in CMD.exe.

If all else fails:

npm install
prettier --write .

Or add a comment to the PR with a slash followed by format.

@JaPrad
Copy link
Contributor

JaPrad commented Jan 10, 2022

Hey @junedev ! The display on my laptop doesn't work and would take few days to fix. Hence temporarily won't be able to work on this issue and the linked PR.
Hope that doesn't cause any trouble?

I'll work on it asap

@junedev
Copy link
Member Author

junedev commented Jan 10, 2022

No problem. Good luck with the repair/replacement.

@junedev
Copy link
Member Author

junedev commented Apr 26, 2022

@JaPatGitHub Now that the concept part is merged, please let me know whether you intend to also work on the exercise.

@JaPrad
Copy link
Contributor

JaPrad commented Apr 27, 2022

Yes @junedev , I am ready work on the exercises too :)

@junedev
Copy link
Member Author

junedev commented Apr 27, 2022

Great! Then I leave the assignment as is.

@junedev junedev added the x:rep/large Large amount of reputation label Apr 27, 2022
@JaPrad
Copy link
Contributor

JaPrad commented Sep 10, 2022

@junedev @SleeplessByte, I am unable to find time to work on this further owing to my heavy courseload as this is my final year at high school.

I apologize for the inconvenience caused and for informing this late...I try to scrape out time to just complete this assignment but fail to make sufficient progress.

@junedev
Copy link
Member Author

junedev commented Sep 10, 2022

👍 No problem, I will unassign you.

@junedev junedev removed the x:status/claimed Someone is working on this issue label Sep 10, 2022
@SalahuddinAhammed
Copy link
Contributor

I'd like to work on this.

@SleeplessByte SleeplessByte added the x:status/claimed Someone is working on this issue label Oct 2, 2022
@SalahuddinAhammed SalahuddinAhammed removed their assignment May 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new exercise ✨ x:action/create Work on something from scratch x:knowledge/elementary Little Exercism knowledge required x:module/concept-exercise Work on Concept Exercises x:rep/large Large amount of reputation x:size/large Large amount of work x:status/claimed Someone is working on this issue x:type/content Work on content (e.g. exercises, concepts)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants