Skip to content

Commit

Permalink
Lagt til oppgave med en enkel kodebase som kan utvides
Browse files Browse the repository at this point in the history
  • Loading branch information
goranbasso committed Sep 17, 2023
1 parent bd2fdac commit 190c8e6
Show file tree
Hide file tree
Showing 11 changed files with 953 additions and 5 deletions.
9 changes: 8 additions & 1 deletion docs/pages/codebase.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@
layout: default
---

heihei codebase
## Kodebase

Her har vi en eksisterende kodebase, som vi ønsker å utvide ved hjelp av språkmodeller.

Kodebasen finnes her:
[Lenke til GitHub-repoet](https://github.com/kantega/ai-dev-workshop/tree/main/workshop/todo)

Dette er en undermappe i repoet til denne workshop'en, så bare klon ned hele wor

[< Tilbake](../)
6 changes: 3 additions & 3 deletions docs/pages/exercises.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@
layout: default
---

## Oppgaver

Disse oppgavene er ganske åpne, og kan gjennomføres på mange måter.

Poenget med denne workshop'en er ikke å faktisk løse oppgavene - men å øve på hvordan språkmodeller
kan passe inn i en eksisterende arbeidsflyt.
Poenget med denne workshop'en er ikke å faktisk løse oppgavene - men å øve på benytte språkmodeller i en arbeidsflyt.

Dersom du ikke er vant til å benytte språkmodeller, så 'tving' deg selv til å gjøre så mye som mulig
med modellen. Da vil du erfare hva som fungerer godt, og hva som fungerer dårlig.

Dette er bare forslag på oppgaver, og kan gjøres i hvilken som helst rekkefølge, og man kan
gjerne blande konsepter fra flere av oppgavene.

## Ferdige oppgaver
### Utvikling
- [ASCII-kunst](./exercises/ASCII-kunst.md)
- [Discord-bot](./exercises/Discord-bot.md)
Expand Down
3 changes: 3 additions & 0 deletions docs/pages/exercises/Diverse-oppgaveforslag.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,9 @@ const expectedMap = {

- Finn potensielle sikkerhetshull i en gitt kodeblokk

### Leetcode / CodeWars / Hackerrank / et al
- Prøv å løs oppgaver på disse diverse programmeringsoppgave-nettsidene


## Potensielle oppgaver - Drift

Expand Down
4 changes: 3 additions & 1 deletion docs/pages/quickstart.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
layout: default
---

heihei quickstart
## Hurtigstart

Om du bare ønsker å komme i gang med å benytte

[< Tilbake](../)
1 change: 1 addition & 0 deletions workshop/todo-app/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/node_modules
31 changes: 31 additions & 0 deletions workshop/todo-app/README.md
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
52 changes: 52 additions & 0 deletions workshop/todo-app/index.js
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}`);
});
Loading

0 comments on commit 190c8e6

Please sign in to comment.