{"id":21015165,"url":"https://github.com/albingroen/northspawn","last_synced_at":"2026-04-09T08:11:13.169Z","repository":{"id":98891258,"uuid":"129065958","full_name":"albingroen/northspawn","owner":"albingroen","description":"In the course webserver-programming our mission was to create the best official site for the gaming event and hackathon Northspawn \u0026 North-Hack. ","archived":false,"fork":false,"pushed_at":"2018-11-12T22:03:42.000Z","size":13846,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-13T16:41:05.287Z","etag":null,"topics":["php","php7","sqlite","sqlite-database","webserver"],"latest_commit_sha":null,"homepage":"http://lab.wijkmanska.se/webbteknik/te15/albin_groen/projekt/","language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/albingroen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-11T09:05:34.000Z","updated_at":"2018-11-12T22:03:44.000Z","dependencies_parsed_at":"2023-03-13T15:53:37.848Z","dependency_job_id":null,"html_url":"https://github.com/albingroen/northspawn","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/albingroen/northspawn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albingroen%2Fnorthspawn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albingroen%2Fnorthspawn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albingroen%2Fnorthspawn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albingroen%2Fnorthspawn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/albingroen","download_url":"https://codeload.github.com/albingroen/northspawn/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/albingroen%2Fnorthspawn/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267874091,"owners_count":24158757,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-30T02:00:09.044Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["php","php7","sqlite","sqlite-database","webserver"],"created_at":"2024-11-19T10:08:52.042Z","updated_at":"2026-04-09T08:11:13.125Z","avatar_url":"https://github.com/albingroen.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Northspawn\n\n## Initializing boilerplate\n\n```\nmkdir northspawn \u0026\u0026 cd northspawn \u0026\u0026 mkdir incs \u0026\u0026\nmkdir imgs \u0026\u0026 mkdir styles \u0026\u0026 touch index.php \u0026\u0026 cd styles \u0026\u0026 touch styles.scss\n```\n\n## Tools and methods\n\n* 😅 PHP\n* :metal: SASS\n* :sparkles: CSS\n* :camel: VSCode\n* :octocat: Github Desktop\n* 🖥 Iterm 2\n* 🔨 SQLite Studio\n\n## Project status\n\n* [x] Create ideas\n* [x] Idea feedback from mentors\n* [x] Project plan\n* [x] Start building\n* [x] Finish build\n* [x] Review of project\n\n## Ideas \u0026 features\n\n* Start page w/ news feed and comments\n* Register form for showing interest in joining event\n* All texts should be database sources for easy editing\n* Admin page for creating news\n\n## Notes\n\n## 2018-05-04\n\nToday I started the day by building on the functionalities with user accounts. I finished my register and login pages so I could begin with the functionalities. I realized the best way of making the flow was to make a user register and sign in on their account before actually being able to place and order. I added a user_passwrod column into my users table in SQLite Studio.\n\nAdding an user to the database was no problem, with a few sql injections and if-statements. Our teacher also decided to have a class in hashing and salting passwords using B-crypt. This made encrypting the password for a user before storing it in the datebase for each user a breeze. The problems starting occuring though when I had to sign in a user on the page over at the login page. My knowledge of SESSION was quite weak, so I googled a little bit and asked for a good explanation from my teacher. I soon realized it was not that complicated, you just had to start the session at some place, and than store for example the email which the user would sign in with in a SESSION variable.\n\nI also decided to create a functionality for being able to load in pages dynamically. For doing this you need something called a page-controller. I created one of these, where i also set `session_start()` and some other variables that need to be globally aplied through out the site. Now I could simply go to pages by doing `index.php?pageid=login` were `index.php` then also would contain header and footer. I think doing this was a good choise and will help me in the future of building the website.\n\n## 2018-05-09\n\nThe past days, including today, I have spent on designing and implementing at the site. I added the proper images that for now just are placeholder images. I added the content for the footer with all close to all links needed. I also styled the footer, and continued the styling on the login and register page. I included a illustration of a avatar which is shown when signed in.\n\nToday, I also started doing some testing on the website to make sure everything worked properly on different browesers like Safari and Firefox. I took a general website compatability test which gave me a below average score in Sweden. The results also showed me what had to be improved on the site in general. I wrote these down and started on working on making my site responsive. I began with making the landing-page responsive, which turned out pretty good. I also decided to spin the website up on the webserver via FileZilla client to view it on a phone for the first time. Everything but the Login and Register pages looked and worked good as expected.\n\n## 2018-17-05\n\nThe past days I have been building and finishing up the functionality for:\n\n* Sending feedback\n* Placeing individual orders\n* Placing multiple products in cart\n* Making a fictional purchase\n* Commenting on news possible\n\nSome of these tasks were quite challanging. Making while loops inside of while loops for the comments, and nesting amoutns of SQL staments and results for placing a new order that gets handled by multiple separate tabled inside of a database. For me, learning and getting yourself into SQL JOINS and general SQL injections and selections overall really helped me understand the concept of how this work. I as well finished up building and styling the products page and cart page. Over this time I genuinly learned more of how websites work under the hoos, especially when it comes to ecommerce and web stores. Now it's time to implement the last important features on the page before presenting my work tomorrow.\n\n---\n\n## Tests\n\n### General test\n\nhttps://webbriktlinjer.se/testa-din-webbplats/?start\n\n1.  Är webbplatsen konsekvent i sin navigation, struktur och övriga utformning?\n\n* [ ] Ja, navigeringen och strukturen är likadan på hela webbplatsen och utformningen följer en grafisk profil. Inga eller endast ett par sidor gör avsteg från detta.\n* [x] Nja, webbplatsen har avsnitt som ser lite olika ut i form och struktur men inom dessa avsnitt är det konsekvent.\n* [ ] Nej, det är inte helt konsekvent. En del sidor byter utseende ganska markant både när det gäller struktur och utformning, och ibland även navigeringen.\n\n2.  Är det möjligt att navigera på webbplatsen genom att enbart använda tangentbordet på en dator?\n\n* [x] Ja, det går att använda tangentbordet för att ta sig fram till samtliga länkar och objekt på sidan. Användarna kommer åt all information enbart med hjälp av tangentbordet.\n* [ ] Nja, det går att navigera i menyer och den huvudsakliga informationen, men vissa funktioner är inte åtkomliga via tangentbordet.\n* [ ] Nej, det gå inte att nå de flesta funktioner och huvudparten av informationen genom att enbart navigera med tangentbordet\n\n3.  Går det att zooma gränssnittet utan att text hamnar bakom andra objekt och utan att information eller funktionalitet går förlorad?\n\n* [ ] Ja, all text och alla funktioner går att både se tydligt och komma åt. Det fungerar även utan att användaren behöver scrolla i sidled för att läsa texten.\n* [x] Delvis, det går att förstora men man måste scrolla i sidled för att kunna läsa en rad\n* [ ] Nej, det går inte att förstora, alternativt text och funktioner går förlorade om man zoomar.\n\n4.  Finns det formulär på webbplatsen som använder sig av en grafisk CAPTCHA-lösning?\n\n* [ ] Ja, webbplatsens formulär använder sig av grafisk CAPTCHA.\n* [x] Nej, inga formulär på webbplatsen använder en grafisk captcha.\n* [ ] Delvis, det finns formulär som använder grafiska CAPTCHA men webbplatsens huvudsakliga funktioner har formulär utan CAPTCHA.\n* [ ] Frågan är inte aktuell för vår webbplats. Vi använder oss inte av formulär.\n\n5.  Är alla visuella rubriker uppmärkta med html-elementen h1-h4 i rätt hierarkisk ordning?\n\n* [x] Ja, webbplatsens rubriker är uppmärkta med rätt h-element.\n* [ ] Delvis, de flesta rubriker är uppmärkta som rubriker men det finns undantag. Däremot är inte mer än var tionde visuell rubrik per sida är felaktig och huvudrubriken är korrekt på alla sidor.\n* [ ] Nej, det finns många sidor som inte har uppmärkta rubriker eller fel hierarkisk ordning på rubriknivåerna.\n\n6.  Fungerar webbplatsen även i enheter med små skärmar som smartphones och surfplattor?\n\n* [ ] Ja, hela gränssnittet, inklusive tjänster går att använda i smartphones och på surfplattor.\n* [ ] Delvis, enskilda tjänster fungerar inte, men webbplatsen är byggd med responsiv (följsam) design.\n* [x] Webbplatsen fungerar att surfa på men är inte byggd med responsiv (följsam) design.\n* [ ] Nej, flera tjänster eller hela webbplatsen är svår eller omöjlig att använda på en enhet med liten skärm.\n\n7.  Är ledtexterna placerade i direkt anslutning till formulärens olika objekt (textfält, radioknapp, kryssruta, select-lista)? Tänk på att ett sökfält är ett formulär som behöver en ledtext.\n\n* [x] Ja, alla ledtexter ligger i direkt anslutning till formulärsobjektet.\n* [ ] Nej, det är bitvis eller alltid långt mellan ledtexterna och formulärsobjekten.\n* [ ] Frågan är inte aktuell för vår webbplats. Vi använder oss inte av formulär.\n* [ ] Delvis, avståndet mellan ledtext och formulärsobjektet är ibland långt men det finns då en linje/färgskiftning som gör att det går att se kopplingen även vid stark förstoring.\n\n8.  Är det tydliga kontraster mellan bakgrund och förgrund?\n\n* [x] Ja, alla viktiga delar som avviker från övrigt innehåll är tydligt markerade. De har antingen tydliga kontraster, är understrukna, har en ikon eller något annat som kompletterar färg för att visa att de är klickbara.\n* [ ] Delvis, det är oftast tydligt, men när det gäller till exempel klickbara bilder är det inte tydligt markerat.\n* [ ] Nej, det finns till exempel länkar och andra delar på webbplatsen som inte har tydliga kontraster.\n\n9.  Är klickytorna så väl tilltagna att det går att klicka på dem på en liten skärm?\n\n* [ ] Ja, alla klickbara objekt är väl tilltagna.\n* [ ] Delvis, men det finns ett undantag, exempelvis en kalenderfunktion.\n* [x] Nej, det finns flera undantag\n\n10. Är webbplatsens filmer textade?\n\n* [ ] Ja, alla filmer är textade\n* [ ] Delvis. Videofilmerna är inte textad men det finns tydliga länkar i nära anslutning till filmerna som leder till material som ger samma information som filmerna.\n* [ ] Nej, videofilmerna är inte textade. Det finns inte heller, eller är inte självklart för besökarna var de kan hitta motsvarande textbaserade material som ger samma information som filmerna.\n* [x] Inte aktuellt. Vi har inga filmer på vår webbplats.\n\n11. Kompletterar ni texter med ljud, bild eller film i de fall någon bedömer att det skulle behövas?\n\n* [ ] Ja, vi gör alltid en avvägning för att avgöra om vi behöver komplettera texterna på något sätt.\n* [ ] Delvis, enskilda redaktörer kan inte köpa in detta men det finns rutiner som gör att webbplatsens innehåll kan kompletteras med illustrationer och film i informationssyfte.\n* [x] Nej, vi brukar inte komplettera texter med ljud, bild eller film.\n\n12. Lyfter ni fram det som är mest relevant i era texter?\n\n* [x] Ja, våra texter har alltid ett tydligt syfte och lyfter det relevanta för läsaren.\n* [ ] Nja, vi har en mix av texter – en del är omfångsrika och svårgenomträngliga medan andra har ett tydligt syfte och lyfter fram det viktigaste för läsaren.\n* [ ] Nej, vi har många omfångsrika texter med ett komplicerat språk.\n\n13. Finns det tydligt markerade länkar till hjälp eller infogad hjälp i alla e-tjänster? Tänk på att detta även gäller till exempel flödet i en en köpprocess i en nätbutik eller när man beställer material, blanketter, bokar tider med mera.\n\n* [x] Nej, det finns varken generellt eller för enskilda formulärsobjekt.\n* [ ] Delvis, det finns antingen enbart för enskilda objekt i formulär eller alla e-tjänster.\n* [ ] Ja, det finns tydliga hjälptexter både för enskilda objekt i formulär och generellt för alla e-tjänster.\n* [ ] Frågan är inte aktuell för vår webbplats. Vi har inga e-tjänster.\n\n14. Har länkarna unika länktexter?\n\n* [x] Ja, alla länkar är unika och använder rubriken på den sida de länkas till.\n* [ ] Ja, de är unika, men inleds ofta med \"Läs mer om ...\" \"Klicka här ...\" eller liknande.\n* [ ] Nej, länkarna på en sida ser ofta ut på samma sätt såsom \"Klicka här för hela nyheten\" eller liknande.\n\n15. Har ni aktivt gjort era pdf:er tillgängliga\n\n* [ ] Ja, vi har bara tillgängliga pdf:er på vår webbplats.\n* [ ] Nja, vi har pdf:er som går att använda i skärmläsare, men texten är ostrukturerad.\n* [ ] Nej, våra pdf:er är bara skapade för utskrift och är bara som en bild.\n* [x] Frågan är inte aktuell för oss. Vi har inga pdf:er på vår webbplats.\n\n16. Är all information på webbplatsen skriven på begriplig svenska?\n\n* [x] Ja, alla våra texter är skrivna på begriplig svenska.\n* [ ] Nja, vi har en mix av texter – en del är skrivna på begriplig svenska, medan andra texter har ett komplicerat språk.\n* [ ] Nej, de flesta av våra texter har ett komplicerat språk.\n\n17. Visas fokus visuellt tydligt när användaren förflyttar sig med tangentbordet på webbplatsens sidor?\n\n* [ ] Ja, det är tydligt på alla länkar och knappar på sidorna.\n* [x] Nja, det är oftast tydligt. Men för enstaka länkar och knappar i innehållet.\n* [ ] Nej, det är inte alltid tydligt.\n\n18. Är webbplatsens rubriker så tydliga att användarna snabbt förstår vad sidan, tabellen, funktionen eller e-tjänsten handlar om?\n\n* [x] Ja, rubrikerna innehåller nyckelord och är så tydliga att användarna snabbt förstår vad webbplatsens olika sidor och detaljer ' [ handlar om.\n* [ ] Nja, de flesta rubriker är tydliga och informativa men vi har inga rubriker på till exempel tabeller och många allmänt hållna ' rubriker som ”aktiviteter”, eller en och samma rubrik genom en hel e-tjänst.\n* [ ] Nej, de flesta rubrikerna är allmänt hållna såsom ”Inledning”, ”Aktiviteter”, \"Tabell\", \"E-tjänst\" eller liknande.\n\n19. Ligger kontaktinformationen åtkomlig från alla sidor på webbplatsen?\n\n* [ ] Ja, vi har tydlig kontaktinformation som ligger åtkomliga från alla sidor.\n* [x] Nej, vi har inte tydlig kontaktinformationen som ligger åtkomlig från alla sidor.\n\n### Score = 63%\n\n## To-do regarding general test\n\n* [x] Make responsive\n* [x] Better navigation\n* [ ] Zoom-comaptablities\n* [x] Bigger clickable areas for mobile users\n* [ ] Add contact info in footer\n* [x] Show focus when navigating with keyboard\n\n### Broswer test\n\n#### Google Chrome\n\nThe browser that the website actually is developed in. The site looks good with nice strokes on borders and proper styling on text in form of font weight.\n\n#### Apple Safari\n\nIn Safari the site overall looks good. The main differences between these two are the font. Here the font looks a bit skinny. Login and registration works properly.\n\n#### Mozilla Firefox\n\nSite looks very good, in fact more or less identical to how it looks on Google Chrome. Login and registration works properly.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbingroen%2Fnorthspawn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falbingroen%2Fnorthspawn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falbingroen%2Fnorthspawn/lists"}