Project Work
Send all questions to linus.rudbeck@distansakademin.se or contact me on one of the labs. I will gladly update and clarify anything in the project instructions and if I make any major changes I will also update you on Canvas. Good Luck!
This page contains instructions for the examination test Laboratory Work. It needs to be completed and presented orally to a teacher at a lab session before you pass the examination test.
Instructions
0. Join a group on Canvas.
Create a github repo called groupX-tawk17-project-2023
and sync to all group members wamp/mamp folder, you need to invite me to this repo by the end of the project. My Github
1. Decide on a use case
Brainstorm possible use cases, discuss and decide on a use case of your choice.
- The use case needs to include users logging in and CRUD:ing something (workouts or todos or something else).
- The use case also needs to include multiple user account levels where one level hace more access / capabilities than the other.
- The use case also needs to connect to or integrate an external API / service.
- An example use case could be: Employee time management See details about this at the bottom.
2. Design the architecture
Create a multitier architecture design that includes multiple user account levels and two presentation layers.
- Design a multitier architecture for the use case. You can use the existing code from previous lecures and github for this.
- Design the user account levels. What user account levels are there and what's the difference?
- Design the two presentation layers
3. Choose the technologies
Choose the technologies you will use for this project (e.g. HTML, CSS, JavaScript, PHP, MySQL, etc).
- Research and decide on the technologies
- Install the necessary tools
4. Set up the development environment
Install the necessary tools and set up the development environment.
- Install the necessary tools
- Set up the development environment
5. Create the database
Create the database and the necessary tables for your use case.
- Research on database creation
- Create the database
- Create the necessary tables
6. Develop the frontend
Develop the frontend using the chosen technologies.
- Research the chosen technologies
- Develop the necessary code
7. Develop the API
Develop the API using the chosen technologies.
- Research the chosen technologies
- Develop the necessary code
8. Develop the data access layers
Develop the data access layers (MySQL and external API).
- Research on data access layers
- Develop the MySQL data access layer
- Develop the external API data access layer
9. Test the application
Test the application to make sure it works correctly.
- Test the application
- Fix any issues found during testing
For grade 3
Create functionality for users to login and access (CRUD) their own data.
For grade 4
Document your code clearly in a README.md in the root of tour project on Github. Instructions here
For grade 5
Allow logged in users to change and update their own information (password etc.) and create functionality for users to delete all their data from the application.
Submitting the assignment
Submit your assignment as a PDF file containing the following:
- A link to your repo on Github, remember to invite me: My Github
- Summary of what you've built in just like in the Employee time management example below.
- Information of which grade you're aiming for and what you've done for Grade 3, 4, or 5.
Example use case Employee time management
- Normal users can CRUD times including how long they worked each day and with what.
- Admin users can see all users times.
- A work time item is saved in the database as
time_entry
and cointainstime_entry_id
,user_id
,minutes
, anddate
. - The application uses TimeAPI.io to show the current time in different time zones (API documentation).
The deadline for the project and the individual assignment is 2023-06-11
Presentation
The project work does not have to be complete for the presentation. If you have implemented the following parts of your project, you are ready to present it:
- Authentication and authorization.
- Users of two different roles can login.
- Frontend presentation layer (html, css, and php).
- API presentation layer that you can reach with postman or similar software.
- At least one external data source / API / service.
- At least one user type / role can CRUD at least one resource.
Prepare your presentation well. The presentation should include:
- Demonstration of the functionality described above.
- Overview of your code.
- Challenges you've faced and how you handled them.
- What you would do differently if you started with the project today.
I would also like feedback about the course (lectures, labs, assignments, exercises and project) if you have any, good or bad, so I can improve if I do the same course next year.