An open API service indexing awesome lists of open source software.

https://github.com/albingroen/northspawn

In the course webserver-programming our mission was to create the best official site for the gaming event and hackathon Northspawn & North-Hack.
https://github.com/albingroen/northspawn

php php7 sqlite sqlite-database webserver

Last synced: 3 months ago
JSON representation

In the course webserver-programming our mission was to create the best official site for the gaming event and hackathon Northspawn & North-Hack.

Awesome Lists containing this project

README

          

# Northspawn

## Initializing boilerplate

```
mkdir northspawn && cd northspawn && mkdir incs &&
mkdir imgs && mkdir styles && touch index.php && cd styles && touch styles.scss
```

## Tools and methods

* 😅 PHP
* :metal: SASS
* :sparkles: CSS
* :camel: VSCode
* :octocat: Github Desktop
* đŸ–„ Iterm 2
* 🔹 SQLite Studio

## Project status

* [x] Create ideas
* [x] Idea feedback from mentors
* [x] Project plan
* [x] Start building
* [x] Finish build
* [x] Review of project

## Ideas & features

* Start page w/ news feed and comments
* Register form for showing interest in joining event
* All texts should be database sources for easy editing
* Admin page for creating news

## Notes

## 2018-05-04

Today 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.

Adding 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.

I 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.

## 2018-05-09

The 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.

Today, 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.

## 2018-17-05

The past days I have been building and finishing up the functionality for:

* Sending feedback
* Placeing individual orders
* Placing multiple products in cart
* Making a fictional purchase
* Commenting on news possible

Some 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.

---

## Tests

### General test

https://webbriktlinjer.se/testa-din-webbplats/?start

1. Är webbplatsen konsekvent i sin navigation, struktur och övriga utformning?

* [ ] 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.
* [x] Nja, webbplatsen har avsnitt som ser lite olika ut i form och struktur men inom dessa avsnitt Àr det konsekvent.
* [ ] 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.

2. Är det möjligt att navigera pĂ„ webbplatsen genom att enbart anvĂ€nda tangentbordet pĂ„ en dator?

* [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.
* [ ] Nja, det gÄr att navigera i menyer och den huvudsakliga informationen, men vissa funktioner Àr inte Ätkomliga via tangentbordet.
* [ ] Nej, det gÄ inte att nÄ de flesta funktioner och huvudparten av informationen genom att enbart navigera med tangentbordet

3. GÄr det att zooma grÀnssnittet utan att text hamnar bakom andra objekt och utan att information eller funktionalitet gÄr förlorad?

* [ ] 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.
* [x] Delvis, det gÄr att förstora men man mÄste scrolla i sidled för att kunna lÀsa en rad
* [ ] Nej, det gÄr inte att förstora, alternativt text och funktioner gÄr förlorade om man zoomar.

4. Finns det formulÀr pÄ webbplatsen som anvÀnder sig av en grafisk CAPTCHA-lösning?

* [ ] Ja, webbplatsens formulÀr anvÀnder sig av grafisk CAPTCHA.
* [x] Nej, inga formulÀr pÄ webbplatsen anvÀnder en grafisk captcha.
* [ ] Delvis, det finns formulÀr som anvÀnder grafiska CAPTCHA men webbplatsens huvudsakliga funktioner har formulÀr utan CAPTCHA.
* [ ] FrÄgan Àr inte aktuell för vÄr webbplats. Vi anvÀnder oss inte av formulÀr.

5. Är alla visuella rubriker uppmĂ€rkta med html-elementen h1-h4 i rĂ€tt hierarkisk ordning?

* [x] Ja, webbplatsens rubriker Àr uppmÀrkta med rÀtt h-element.
* [ ] 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.
* [ ] Nej, det finns mÄnga sidor som inte har uppmÀrkta rubriker eller fel hierarkisk ordning pÄ rubriknivÄerna.

6. Fungerar webbplatsen Àven i enheter med smÄ skÀrmar som smartphones och surfplattor?

* [ ] Ja, hela grÀnssnittet, inklusive tjÀnster gÄr att anvÀnda i smartphones och pÄ surfplattor.
* [ ] Delvis, enskilda tjÀnster fungerar inte, men webbplatsen Àr byggd med responsiv (följsam) design.
* [x] Webbplatsen fungerar att surfa pÄ men Àr inte byggd med responsiv (följsam) design.
* [ ] Nej, flera tjÀnster eller hela webbplatsen Àr svÄr eller omöjlig att anvÀnda pÄ en enhet med liten skÀrm.

7. Ä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.

* [x] Ja, alla ledtexter ligger i direkt anslutning till formulÀrsobjektet.
* [ ] Nej, det Àr bitvis eller alltid lÄngt mellan ledtexterna och formulÀrsobjekten.
* [ ] FrÄgan Àr inte aktuell för vÄr webbplats. Vi anvÀnder oss inte av formulÀr.
* [ ] 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.

8. Är det tydliga kontraster mellan bakgrund och förgrund?

* [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.
* [ ] Delvis, det Àr oftast tydligt, men nÀr det gÀller till exempel klickbara bilder Àr det inte tydligt markerat.
* [ ] Nej, det finns till exempel lÀnkar och andra delar pÄ webbplatsen som inte har tydliga kontraster.

9. Är klickytorna sĂ„ vĂ€l tilltagna att det gĂ„r att klicka pĂ„ dem pĂ„ en liten skĂ€rm?

* [ ] Ja, alla klickbara objekt Àr vÀl tilltagna.
* [ ] Delvis, men det finns ett undantag, exempelvis en kalenderfunktion.
* [x] Nej, det finns flera undantag

10. Är webbplatsens filmer textade?

* [ ] Ja, alla filmer Àr textade
* [ ] 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.
* [ ] 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.
* [x] Inte aktuellt. Vi har inga filmer pÄ vÄr webbplats.

11. Kompletterar ni texter med ljud, bild eller film i de fall nÄgon bedömer att det skulle behövas?

* [ ] Ja, vi gör alltid en avvÀgning för att avgöra om vi behöver komplettera texterna pÄ nÄgot sÀtt.
* [ ] 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.
* [x] Nej, vi brukar inte komplettera texter med ljud, bild eller film.

12. Lyfter ni fram det som Àr mest relevant i era texter?

* [x] Ja, vÄra texter har alltid ett tydligt syfte och lyfter det relevanta för lÀsaren.
* [ ] 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.
* [ ] Nej, vi har mÄnga omfÄngsrika texter med ett komplicerat sprÄk.

13. 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.

* [x] Nej, det finns varken generellt eller för enskilda formulÀrsobjekt.
* [ ] Delvis, det finns antingen enbart för enskilda objekt i formulÀr eller alla e-tjÀnster.
* [ ] Ja, det finns tydliga hjÀlptexter bÄde för enskilda objekt i formulÀr och generellt för alla e-tjÀnster.
* [ ] FrÄgan Àr inte aktuell för vÄr webbplats. Vi har inga e-tjÀnster.

14. Har lÀnkarna unika lÀnktexter?

* [x] Ja, alla lÀnkar Àr unika och anvÀnder rubriken pÄ den sida de lÀnkas till.
* [ ] Ja, de Àr unika, men inleds ofta med "LÀs mer om ..." "Klicka hÀr ..." eller liknande.
* [ ] Nej, lÀnkarna pÄ en sida ser ofta ut pÄ samma sÀtt sÄsom "Klicka hÀr för hela nyheten" eller liknande.

15. Har ni aktivt gjort era pdf:er tillgÀngliga

* [ ] Ja, vi har bara tillgÀngliga pdf:er pÄ vÄr webbplats.
* [ ] Nja, vi har pdf:er som gÄr att anvÀnda i skÀrmlÀsare, men texten Àr ostrukturerad.
* [ ] Nej, vÄra pdf:er Àr bara skapade för utskrift och Àr bara som en bild.
* [x] FrÄgan Àr inte aktuell för oss. Vi har inga pdf:er pÄ vÄr webbplats.

16. Är all information pĂ„ webbplatsen skriven pĂ„ begriplig svenska?

* [x] Ja, alla vÄra texter Àr skrivna pÄ begriplig svenska.
* [ ] Nja, vi har en mix av texter – en del Ă€r skrivna pĂ„ begriplig svenska, medan andra texter har ett komplicerat sprĂ„k.
* [ ] Nej, de flesta av vÄra texter har ett komplicerat sprÄk.

17. Visas fokus visuellt tydligt nÀr anvÀndaren förflyttar sig med tangentbordet pÄ webbplatsens sidor?

* [ ] Ja, det Àr tydligt pÄ alla lÀnkar och knappar pÄ sidorna.
* [x] Nja, det Àr oftast tydligt. Men för enstaka lÀnkar och knappar i innehÄllet.
* [ ] Nej, det Àr inte alltid tydligt.

18. Är webbplatsens rubriker sĂ„ tydliga att anvĂ€ndarna snabbt förstĂ„r vad sidan, tabellen, funktionen eller e-tjĂ€nsten handlar om?

* [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.
* [ ] 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.
* [ ] Nej, de flesta rubrikerna Ă€r allmĂ€nt hĂ„llna sĂ„som ”Inledning”, ”Aktiviteter”, "Tabell", "E-tjĂ€nst" eller liknande.

19. Ligger kontaktinformationen Ätkomlig frÄn alla sidor pÄ webbplatsen?

* [ ] Ja, vi har tydlig kontaktinformation som ligger Ätkomliga frÄn alla sidor.
* [x] Nej, vi har inte tydlig kontaktinformationen som ligger Ätkomlig frÄn alla sidor.

### Score = 63%

## To-do regarding general test

* [x] Make responsive
* [x] Better navigation
* [ ] Zoom-comaptablities
* [x] Bigger clickable areas for mobile users
* [ ] Add contact info in footer
* [x] Show focus when navigating with keyboard

### Broswer test

#### Google Chrome

The 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.

#### Apple Safari

In 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.

#### Mozilla Firefox

Site looks very good, in fact more or less identical to how it looks on Google Chrome. Login and registration works properly.