-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Lagt til oppgave med en enkel kodebase som kan utvides
- Loading branch information
1 parent
bd2fdac
commit 190c8e6
Showing
11 changed files
with
953 additions
and
5 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/node_modules |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
## En svært enkel TODO-applikasjon | ||
|
||
En svært simpel TODO-applikasjon, basert på https://github.com/missating/nodejs-todo | ||
|
||
Benytter: | ||
- NodeJS | ||
- express | ||
- Embedded JavaScript (https://ejs.co/) | ||
|
||
Start applikasjonen ved å kjøre: | ||
``` | ||
npm run start | ||
``` | ||
|
||
Åpne applikasjonen på `http://localhost:3000` | ||
(må muligens cleare cachen, om man har brukt denne porten før i andre kontekster - eventuelt bare endre den til noe annet) | ||
|
||
|
||
## Potensielle utvidelser | ||
- Tid for når en TODO er fullført | ||
- Bytte ut `ejs` med et annet rammeverk | ||
- Bytte ut `express` med en annen backend | ||
- Legge til persistering | ||
- Legg til styling | ||
- Sortere TODO's | ||
- Legg til tester | ||
- Feilhåndtering | ||
- Andre funksjonaliteter enn bare TODO's | ||
- Brukere | ||
- Mer innhold i en TODO | ||
- Som en Jira-task: kan ha tags, labels, lenket til andre tasks, en person som den er tildelt, etc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
const express = require('express'); | ||
const path = require('path'); | ||
const bodyParser = require('body-parser'); | ||
|
||
// setup | ||
const app = express(); | ||
app.set('views', path.join(__dirname, 'views')); | ||
app.set('view engine', 'ejs'); | ||
|
||
app.use(bodyParser.urlencoded({ extended: true })); | ||
app.use(express.static(path.join(__dirname, 'public'))); | ||
|
||
const PORT = 3000; | ||
|
||
// models | ||
const tasks = ['an example task', 'another example task']; | ||
const completed = ['a completed task']; | ||
const completeTask = (task) => { | ||
completed.push(task); | ||
tasks.splice(tasks.indexOf(task), 1); | ||
}; | ||
|
||
// routes | ||
const router = express.Router(); | ||
|
||
router.get('/', function (req, res) { | ||
res.render('index', { tasks: tasks, completed: completed }); | ||
}); | ||
|
||
router.post('/addtask', function(req, res) { | ||
const newTask = req.body.newTask; | ||
tasks.push(newTask); | ||
res.redirect('/'); | ||
}); | ||
|
||
router.post('/removetask', function(req, res) { | ||
const completedTask = req.body.checkedTask; | ||
if (typeof completedTask === 'string') { | ||
completeTask(completedTask); | ||
} else if (completedTask === 'object') { | ||
for (let i = 0; i < completedTask.length; i++) { | ||
completeTask(completedTask[i]); | ||
} | ||
} | ||
res.redirect('/'); | ||
}); | ||
|
||
app.use('/', router); | ||
|
||
app.listen(PORT, function () { | ||
console.log(`Application listening on port ${PORT}`); | ||
}); |
Oops, something went wrong.