Postgres full-text search in Node.js and Sequelize.
Raspberry Pi Web Controller
mujz/pg-search-sequelize-example 6
An example use case of pg-search-sequelize node library
mujz/bootcamp-iraq-2020apr-1-git-excercise 1
Iraq April Bootcamp Repo
Free SSL cert with one command from Let's Encrypt
Node.js API that converts an RSS URL into JSON
push eventReCoded-Org/lebanon-web-bootcamp-002
commit sha 126cfdec6b327cc05672a6e79ad79de037236885
play
commit sha 160ce165750c0a6a2525c3644cb1e3546d147353
Merge pull request #163 from ReCoded-Org/new-branch play
push time in 19 hours
PR merged ReCoded-Org/lebanon-web-bootcamp-002
this is me trying a new feature
fixes #162
pr closed time in 19 hours
Pull request review commentReCoded-Org/lebanon-web-bootcamp-002
# lebanon-web-bootcamp-002 Collective repo for activities and assignments of Lebanon Web Development Bootcamp Students+
you should rename this variable, please
comment created time in 19 hours
PR opened ReCoded-Org/lebanon-web-bootcamp-002
this is me trying a new feature
fixes #162
pr created time in 19 hours
create barnchReCoded-Org/lebanon-web-bootcamp-002
created branch time in 19 hours
PR closed ReCoded-Org/bootcamp-turkey-2021-april
pr closed time in 20 hours
PR opened ReCoded-Org/bootcamp-turkey-2021-april
pr created time in 20 hours
PR opened ReCoded-Org/lebanon-web-bootcamp-002
pr created time in a day
PR opened ReCoded-Org/lebanon-web-bootcamp-002
pr created time in a day
push eventthe-sol/pomodoro
commit sha 493e7669d1045b6c011afd0ed6c3be7c13e260ca
Fix: correct SettingsModal.defaultProps there is two element inside it, i write the default value as a string but the correct thing as a below: toggleShow: Function, show: Boolean. and i delete <></> around Model tag because it isn't necessary.
push time in 2 days
Pull request review commentthe-sol/pomodoro
pomo-220-Add-setting-to-Header
+import React, { useState } from 'react';+import Form from 'react-bootstrap/Form';+import Button from 'react-bootstrap/Button';+import { PERIODS } from '../../services/timer';++const SettingsForm = () => {+ const [periods, setPeriods] = useState(PERIODS);++ const handleSubmit = (e) => {+ e.preventDefault();+ Object.assign(PERIODS, periods);+ };+ const changePeriod = (periodName, propertyKey, propertyValue) => {+ setPeriods({+ ...periods,+ [periodName]: {+ ...periods[periodName],+ [propertyKey]: parseInt(propertyValue, 10),+ },+ });+ };+ return (+ <Form onSubmit={handleSubmit}>+ {Object.keys(periods).map((period) => (
On the last day in the office after you go, I am just suddenly before we go home I think about data I work on it inside the object and map function work on the array, quickly search in google (map function for the object) and I find this solution. this is a link : https://stackoverflow.com/questions/14810506/map-function-for-objects-instead-of-arrays
comment created time in 2 days
Pull request review commentthe-sol/pomodoro
[pomo-148] pomo-148-Show-a-notification-when-each-period-ends
const Timer = () => { const reset = () => { timeOverSoundAudio.play();+ const showNotification = () => {+ let text = null;+ const img = 'https://source.unsplash.com/1600x900/?nature,water;';+ if (counter.current === 6) {+ text = `Great job! Take a long break. You have ${PERIODS.longBrk.secs} minutes.`;+ (() => new Notification('Pomodoro', {+ body: text,+ icon: img+ }))();+ } else if (currentPeriod.id === 'short-brk' || currentPeriod.id === 'long-brk') {+ text = `Time to get back to work! Your next break starts in ${PERIODS.work.secs} minutes.`;+ (() => new Notification('Pomodoro', {+ body: text,+ icon: img+ }))();+ } else if (currentPeriod.id === 'work') {+ text = `Nice work! Take a short break. You have ${PERIODS.shortBrk.secs} minutes.`;+ (() => new Notification('Pomodoro', {+ body: text,+ icon: img+ }))();+ }+ };+ if (Notification.permission === 'granted') {+ showNotification();+ } else if (Notification.permission !== 'denied') {+ Notification.requestPermission().then((permission) => {+ if (permission === 'granted') {+ showNotification();+ }+ });+ } setIsRunning(false); counter.current += 1; const nextPeriod = determineNextPeriod(currentPeriod, counter.current); if (counter.current === 7) {- counter.current = 0;+ counter.current = 0;// the counter need to be -1 instead of 0 becuase there is a bug
because there is a bug that shows to me at the second 7 periods and it continues to the coming Pomodoro periods. at the 5th short break, it shows a long break instead of the work period. The counter starts from 0 but after the first 7 periods it starts from 1 so this problem happens and I solve it by changing the current counter to (-1).
comment created time in 3 days
Pull request review commentthe-sol/pomodoro
[pomo-148] pomo-148-Show-a-notification-when-each-period-ends
const Timer = () => { const reset = () => { timeOverSoundAudio.play();+ const showNotification = () => {+ let text = null;+ const img = 'https://source.unsplash.com/1600x900/?nature,water;';+ if (counter.current === 6) {+ text = `Great job! Take a long break. You have ${PERIODS.longBrk.secs} minutes.`;+ (() => new Notification('Pomodoro', {+ body: text,+ icon: img+ }))();+ } else if (currentPeriod.id === 'short-brk' || currentPeriod.id === 'long-brk') {+ text = `Time to get back to work! Your next break starts in ${PERIODS.work.secs} minutes.`;+ (() => new Notification('Pomodoro', {+ body: text,+ icon: img+ }))();+ } else if (currentPeriod.id === 'work') {+ text = `Nice work! Take a short break. You have ${PERIODS.shortBrk.secs} minutes.`;+ (() => new Notification('Pomodoro', {+ body: text,+ icon: img+ }))();+ }+ };+ if (Notification.permission === 'granted') {+ showNotification();+ } else if (Notification.permission !== 'denied') {+ Notification.requestPermission().then((permission) => {+ if (permission === 'granted') {+ showNotification();+ }+ });+ }
I don't have any ideas about this, but I will ask motaz and figure it out.
comment created time in 3 days
Pull request review commentthe-sol/pomodoro
[pomo-148] pomo-148-Show-a-notification-when-each-period-ends
const Timer = () => { const reset = () => { timeOverSoundAudio.play();+ const showNotification = () => {+ let text = null;+ const img = 'https://source.unsplash.com/1600x900/?nature,water;';+ if (counter.current === 6) {+ text = `Great job! Take a long break. You have ${PERIODS.longBrk.secs} minutes.`;+ (() => new Notification('Pomodoro', {+ body: text,+ icon: img+ }))();+ } else if (currentPeriod.id === 'short-brk' || currentPeriod.id === 'long-brk') {+ text = `Time to get back to work! Your next break starts in ${PERIODS.work.secs} minutes.`;+ (() => new Notification('Pomodoro', {+ body: text,+ icon: img+ }))();+ } else if (currentPeriod.id === 'work') {+ text = `Nice work! Take a short break. You have ${PERIODS.shortBrk.secs} minutes.`;+ (() => new Notification('Pomodoro', {+ body: text,+ icon: img+ }))();
yes, I knew there is a problem if I repeat myself with the same code, but I didn't think about it a lot. I will think about it now and try to figure out it.
comment created time in 3 days
Pull request review commentthe-sol/pomodoro
[pomo-148] pomo-148-Show-a-notification-when-each-period-ends
const Timer = () => { const reset = () => { timeOverSoundAudio.play();+ const showNotification = () => {+ let text = null;+ const img = 'https://source.unsplash.com/1600x900/?nature,water;';+ if (counter.current === 6) {
because the counter start calculates from 0, not 1, and since we need to show a long break after 7 periods, it must be 6, not 7.
comment created time in 3 days
Pull request review commentthe-sol/pomodoro
[pomo-148] pomo-148-Show-a-notification-when-each-period-ends
const Timer = () => { const reset = () => { timeOverSoundAudio.play();+ const showNotification = () => {+ let text = null;+ const img = 'https://source.unsplash.com/1600x900/?nature,water;';+ if (counter.current === 6) {+ text = `Great job! Take a long break. You have ${PERIODS.longBrk.secs} minutes.`;+ (() => new Notification('Pomodoro', {+ body: text,+ icon: img+ }))();+ } else if (currentPeriod.id === 'short-brk' || currentPeriod.id === 'long-brk') {+ text = `Time to get back to work! Your next break starts in ${PERIODS.work.secs} minutes.`;+ (() => new Notification('Pomodoro', {+ body: text,+ icon: img+ }))();+ } else if (currentPeriod.id === 'work') {+ text = `Nice work! Take a short break. You have ${PERIODS.shortBrk.secs} minutes.`;
yes, sorry I also forget to change (secs) to (mins) before I pushed my branch.
comment created time in 3 days
Pull request review commentthe-sol/pomodoro
[pomo-148] pomo-148-Show-a-notification-when-each-period-ends
const Timer = () => { const reset = () => { timeOverSoundAudio.play();+ const showNotification = () => {+ let text = null;+ const img = 'https://source.unsplash.com/1600x900/?nature,water;';+ if (counter.current === 6) {+ text = `Great job! Take a long break. You have ${PERIODS.longBrk.secs} minutes.`;+ (() => new Notification('Pomodoro', {+ body: text,+ icon: img+ }))();+ } else if (currentPeriod.id === 'short-brk' || currentPeriod.id === 'long-brk') {+ text = `Time to get back to work! Your next break starts in ${PERIODS.work.secs} minutes.`;
yes, sorry I also forget to change (secs) to (mins) before I pushed my branch.
comment created time in 3 days
Pull request review commentthe-sol/pomodoro
[pomo-148] pomo-148-Show-a-notification-when-each-period-ends
const Timer = () => { const reset = () => { timeOverSoundAudio.play();+ const showNotification = () => {+ let text = null;+ const img = 'https://source.unsplash.com/1600x900/?nature,water;';+ if (counter.current === 6) {+ text = `Great job! Take a long break. You have ${PERIODS.longBrk.secs} minutes.`;
yes,sorry I also forget to change (secs) to (mins) before I pushed my branch.
comment created time in 3 days
Pull request review commentthe-sol/pomodoro
[pomo-148] pomo-148-Show-a-notification-when-each-period-ends
+/* eslint-disable space-before-blocks */+/* eslint-disable space-before-function-paren */+/* eslint-disable no-undef */+/* eslint-disable vars-on-top */+/* eslint-disable no-var */+/* eslint-disable prefer-arrow-callback */+/* eslint-disable indent */+/* eslint-disable comma-dangle */
yes, absolutely I shouldn't push these eslient disable comments. sorry I forget them.
comment created time in 3 days
PR closed ReCoded-Org/lebanon-web-bootcamp-002
pr closed time in 4 days
pull request commentthe-sol/pomodoro
[pomo-148] pomo-148-Show-a-notification-when-each-period-ends
Visit the preview URL for this PR (updated for commit f9cc22f):
https://the-sol-pomodoro--pr25-pomo-148-show-a-noti-f8ckd3w5.web.app
<sub>(expires Wed, 23 Jun 2021 08:00:59 GMT)</sub>
<sub>🔥 via Firebase Hosting GitHub Action 🌎</sub>
comment created time in 4 days
PR opened the-sol/pomodoro
show diffirent messages at the notification after each period.
pr created time in 4 days
create barnchthe-sol/pomodoro
branch : pomo-148-Show-a-notification-when-each-period-ends
created branch time in 4 days
push eventReCoded-Org/lebanon-web-bootcamp-002
commit sha e98bc23849989be223d1f85f50a27b94f1c57244
wallet app
commit sha a91f258721e5b5acba1c7644d25cf245512da01c
Merge pull request #156 from karenchehade/main wallet app
push time in 4 days
PR merged ReCoded-Org/lebanon-web-bootcamp-002
pr closed time in 4 days