- I met with my supervisor to discuss what the project entails and to also discuss my initial plan.
- I am struggling to decide on what product I want to build but I am thinking about creating a store application that allows for individual users, teams and enterprise users.
- I have been researching technologies that I am planning on using both now and In the future.
- After researching the technologies I wanted to use I found some issues with how to test them so I am evaulating what would be the best option, I also asked my supervisor what they thought would be a good approach, with the advice I got and the research I completed I will be able to narrow down what to use.
- Finally I have been working on my project plan and have started the abstract, created an intial timeline and started thinking about the risks my project has.
- I continued working on my project plan, I had some areas where I was unsure so I asked my supervisor to read over one of my drafts.
- I continued to research web technologies and I am planning on setting up the initial application.
- I updated my plan based on the recomendations I recieved and finished it off.
- I submitted the project plan and merged it into the main branch of this repo as well as creating a tag for it so that I can easily track when it was completed.
- I had planned on setting up the intial application and I will have some of it set up but it will be hard to fully understand the requirments until my project plan has been marked and I have some feedback on it.
- I spent the majority of this week planning and researching.
- I have decided to use a Java Spring boot application with a PostgreSQL database for the backend and a Typescript Next.js Frontend.
- I created an initial setup for both the frontend and backend and I plan to continue working on the setup over the next week.
- I did lots of research on all of these frameworks as well as authentication providers and payment providers.
- I setup the authentication provider that I am planning to use. To do this I used the research I did on AWS Cognito and Terraform so that I could provision it using Infrastructure as Code.
- I also setup apollo client on the frontend which I will use to manage the states of my data and interact with the backend of the application.
- Finally I setup graphql codegen which will enable me to generate type safe code from my graphql schema.
- I setup authentication on the frontend which now allows for a user to login if they have a cognito user account.
- I then setup the use of JWT for authorisation. This was only setup to send the JWT to the backend.
- I started adding JWT verification on the backend but I started getting lots of issues with CORS once I added spring security. This meant that the issue is rolling over into Week 6.
- I met with my supervisor this week and discussed my current progress, I identified that I need to start my reports as soon as possible so I am planning on doing that.
- I finished off the intital backend securtity that I was working on and merged it.
- I have been building the user interface out.
- Created different security profiles for the backend.
- I created a database and an initial users table in it.
- Created unit and integration tests for the backend.
- Added checkstyle to the backend and fixed existing issues.
- Started to create gitlab ci pipelines for the project.
- Started my interim report.
- Continued to work on the pipelines but had lots of issues with the images they would run on.
- Added a userDetails table which contained basic information about a user.
- Created the ui for the user details.
- Researched Netflix dgs to fix errors and created custom datafetchers for the user details.
- Finalised the user details ui, backend and the database schema and functions.
- I updated the security config, specifically the jwt decoder.
- Fixed the backend pipeline as the new changes were causing errors.
- Continued to work on my interim report.
- I added items to the database and backend.
- I setup intial searching of the items.
- Created and completed the presentation slides for week 11.
- I added end to end and component testing to the frontend.
- Added and configured knip for the frontend.
- Updated the frontend security info.
- Setup initial stripe subscriptions.
- Added steps to setup the stripe subscriptions.
- Presented my presentation and watched peer presentations.
- Finished the interim report.
- Assessed status of project and made a plan on what to do going forward.
- Created SQL tests for the database.
- Setup Redis as a cache.
- Setup Cache connection from backend.
- Implemented initial caching with Redis.
- Setup Cognito in the integration tests.
- Setup a delete user functionality that soft deletes users so that some important information is not lost.
- Started to work on the AWS infrastructure.
- Changed the setup of the IAC.
- There was lots of progress with the infrastructure this week but it was all works in progress so there is not much in the diary.
- The infastructure overhall was completed this week but there are still things to work on with it.
- A production merge was made after configuring the code for it.
- The User interface for searching was created and the implementation was started.
- There was more infrastructure overhall this week as the load balancers were setup and ssl.
- Work on SES and the implementation was started here and hoping to be completed by the end of the week.
- The SES infrastructure and implementation were completed like planned.
- An integration with Jira for bug reporting was created.
- A backend logging solution was added.
- Fixes for the integration tests were completed.
## Week 18
- Started the final report.
- Lots of new backend features were created this week.
- Queries and mutations for items were made.
- Pagnitation was added and worked on.
- The create item ui was made.
- Queries to get items by users were made.
- The backend was restructured and refactored.
- The graphql schema was restructured as well.
- Pages for the users items were created.
- A production merge was made.
- Frontend pagination, sorting and filtering were added where possible.
- The shops items got an overhall.
- Admin features were started to be worked on.
- Admin features were create and worked on heavily.
- There were lots of fixes to do with the admins.
- Especially to do with how the cahcing worked here.
- Production merge.
- More infrastructure updates.
- This mainly was to do with the CICD.
- Test, build and deployment stages were created inside a pipeline.
- An integration with OpenAi was started.
- A AI chatbot was added.
- Work for an apollo gateway was started.
- There were lots of updates to the gateway and it was completed.
- But it was parked for now as the backend is still one service
- The infrastruture was also setup and parked.
- The bidding service was setup and completed.
- Kafka was configured and added.
- Final infrastructure updates were made.
- The final changes were added.
- The final report was finsihed.