mirror of
https://github.com/dat515-2025/Group-8.git
synced 2026-03-22 06:57:47 +01:00
feat(docs): report.md update
This commit is contained in:
@@ -526,6 +526,7 @@ npm run dev in 7project/src/frontend
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
|
||||
### Common Issues
|
||||
|
||||
#### Issue 1: Unable to apply Cloudflare terraform module
|
||||
@@ -550,10 +551,29 @@ by either hitting docker hub rate limits or by docker hub being down.
|
||||
|
||||
### Debug Commands
|
||||
|
||||
Get a detailed description of the Deployment:
|
||||
```bash
|
||||
# Useful commands for debugging
|
||||
# Log viewing commands
|
||||
# Service status checks
|
||||
kubectl describe deployment finance-tracker -n prod
|
||||
```
|
||||
|
||||
Get a list of pods in the Deployment:
|
||||
```bash
|
||||
kubectl get pods -n prod
|
||||
```
|
||||
|
||||
Check the logs of a specific pod copy value for <pod-name> from the command above (--previous flag shows logs of a failing pod, remove it if the pod is not failing):
|
||||
```bash
|
||||
kubectl logs <pod-name> -n prod --previous
|
||||
```
|
||||
|
||||
See the service description:
|
||||
```bash
|
||||
kubectl describe service finance-tracker -n prod
|
||||
```
|
||||
|
||||
Connect to the pod and run a bash shell:
|
||||
```bash
|
||||
kubectl exec -it <pod-name> -n prod -- /bin/bash
|
||||
```
|
||||
|
||||
---
|
||||
@@ -566,9 +586,9 @@ by either hitting docker hub rate limits or by docker hub being down.
|
||||
|
||||
| Task/Component | Assigned To | Status | Time Spent | Difficulty | Notes |
|
||||
|-------------------------------------------------------------------------------------------------------------------|-------------|----------------|------------|------------|-----------------------------------------------------------------------------------------------------|
|
||||
| [Project Setup & Repository](https://github.com/dat515-2025/Group-8#) | Lukas | ✅ Complete | [X hours] | Medium | [Any notes] |
|
||||
| [Project Setup & Repository](https://github.com/dat515-2025/Group-8#) | Lukas | ✅ Complete | 40 Hours | Medium | [Any notes] |
|
||||
| [Design Document](https://github.com/dat515-2025/Group-8/blob/main/6design/design.md) | Both | ✅ Complete | 4 Hours | Easy | [Any notes] |
|
||||
| [Backend API Development](https://github.com/dat515-2025/Group-8/tree/main/7project/backend/app/api) | Dejan | ✅ Complete | 12 hours | Medium | [Any notes] |
|
||||
| [Backend API Development](https://github.com/dat515-2025/Group-8/tree/main/7project/backend/app/api) | Dejan | ✅ Complete | 14 hours | Medium | [Any notes] |
|
||||
| [Database Setup & Models](https://github.com/dat515-2025/Group-8/tree/main/7project/backend/app/models) | Lukas | ✅ Complete | [X hours] | Medium | [Any notes] |
|
||||
| [Frontend Development](https://github.com/dat515-2025/Group-8/tree/main/7project/frontend) | Dejan | ✅ Complete | 17 hours | Medium | [Any notes] |
|
||||
| [Docker Configuration](https://github.com/dat515-2025/Group-8/blob/main/7project/compose.yml) | Lukas | ✅ Complete | 3 hours | Easy | [Any notes] |
|
||||
@@ -610,23 +630,25 @@ by either hitting docker hub rate limits or by docker hub being down.
|
||||
### Dejan
|
||||
|
||||
| Date | Activity | Hours | Description | Representative Commit / PR |
|
||||
|:----------------|:---------------------|:-------|:--------------------------------------------------------------|:---------------------------------------------------------|
|
||||
|:-----------------|:---------------------|:-------|:----------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------|
|
||||
| 25.9. | Design | 2 | 6design | |
|
||||
| 9.10 to 11.10. | Backend APIs | 14 | Implemented Backend APIs | `PR #26`, `20-create-a-controller-layer-on-backend-side` |
|
||||
| 13.10 to 15.10. | Frontend Development | 8 | Created user interface mockups | `PR #28`, `frontend basics` |
|
||||
| Continually | Documentation | 7 | Documenting the dev process | |
|
||||
| 21.10 to 23.10 | Tests, frontend | 10 | Test basics, balance charts, and frontend improvement | `PR #31`, `30 create tests and set up a GitHub pipeline` |
|
||||
| 28.10 to 30.10 | CI | 6 | Integrated tests with test database setup on github workflows | `PR #28`, `frontend basics` |
|
||||
| 28.10 to 30.10 | Frontend | 8 | UI improvements and exchange rate API integration | `PR #28`, `frontend basics` |
|
||||
| 4.11 to 6.11 | Tests | 6 | Test fixes improvement, more integration and e2e | `PR #28`, `frontend basics` |
|
||||
| 4.11 to 6.11 | Frontend | 6 | Fixes, Improved UI, added support for mobile devices | `PR #28`, `frontend basics` |
|
||||
| 11.11 | Backend APIs | 4 | Moved rates API, mock bank to Backend, few fixes | `PR #28`, `frontend basics` |
|
||||
| 11.11 to 12.11 | Tests | 3 | Local testing DB container, few fixes | `PR #28`, `frontend basics` |
|
||||
| 12.11 | Frontend | 3 | Enabled multiple transaction edits at once, CSAS button state | `PR #28`, `frontend basics` |
|
||||
| 13.11 | Video | 3 | Video | |
|
||||
| **Total** | | **80** | | |
|
||||
| 9.10. to 11.10. | Backend APIs | 14 | Implemented Backend APIs | `PR #26`, `20-create-a-controller-layer-on-backend-side` |
|
||||
| 13.10. to 15.10. | Frontend Development | 8 | Created user interface mockups | `PR #28`, `frontend basics` |
|
||||
| 21.10. to 23.10. | Tests, frontend | 10 | Test basics, balance charts, and frontend improvement | `PR #31`, `30 create tests and set up a GitHub pipeline` |
|
||||
| 28.10. to 30.10. | CI/CD | 6 | Integrated tests with test database setup on github workflows | `PR #31`, `30 create tests and set up a GitHub pipeline` |
|
||||
| 28.10. to 30.10. | Frontend | 8 | UI improvements and exchange rate API integration | `PR #35`, `34 improve frontend functionality` |
|
||||
| 29.10. | Backend | 4 | Token invalidation, few fixes | `PR #38`, `fix(backend): implemented jwt token invalidation so users cannot use …` |
|
||||
| 4.11. to 6.11. | Tests | 6 | Test fixes improvement, more integration and e2e | `PR #45`, `feat(test): added more tests ` |
|
||||
| 4.11. to 6.11. | Frontend | 8 | Fixes, rates API, Improved UI, added support for mobile devices | `PR #41, #44`, `feat(frontend): added CNB API and moved management into a new tab`, `43 fix the UI layout in chrome ` |
|
||||
| 11.11. | Backend APIs | 4 | Moved rates API, mock bank to Backend, few fixes | `feat(backend): Moved the unirate API to the backend `, `feat(backend): moved mock bank to backend` |
|
||||
| 11.11. to 12.11. | Tests | 3 | Local testing DB container, few fixes | `PR #48`, `fix(tests): fixed test runtime errors regarding database connection ` |
|
||||
| 12.11. | Frontend | 3 | Enabled multiple transaction edits at once, CSAS button state | `feat(frontend): implemented multiple transaction selections in UI` |
|
||||
| 13.11. | Video | 3 | Video | |
|
||||
| 25.9. to 14.11. | Documentation | 8 | Documenting the dev process | multiple `feat(docs): report.md update` |
|
||||
| **Total** | | **87** | | |
|
||||
|
||||
### Group Total: [XXX.X] hours
|
||||
|
||||
### Group Total: 192 hours
|
||||
|
||||
---
|
||||
|
||||
@@ -634,7 +656,13 @@ by either hitting docker hub rate limits or by docker hub being down.
|
||||
|
||||
### What We Learned
|
||||
|
||||
[Reflect on the key technical and collaboration skills learned during this project]
|
||||
#### Technical
|
||||
- We learned how to use AI to help us with our project.
|
||||
- We learned how to use Copilot for PR reviews.
|
||||
- We learned how to troubleshoot issues with our project in different areas.
|
||||
#### Collaboration
|
||||
- Weekly meetings with the TA were great for syncing up on progress, discussing issues, planning future work.
|
||||
- Using GitHub issues and pull requests was very helpful for keeping track of progress.
|
||||
|
||||
### Challenges Faced
|
||||
|
||||
@@ -648,6 +676,10 @@ If the deployed module (helm chart for example) was not configured properly, it
|
||||
namespace that cannot be deleted.
|
||||
This was solved by using snapshots in Proxmox and restoring if this happened.
|
||||
|
||||
#### Not enough time to implement all features
|
||||
Since this course is worth only 5 credits, we often had to prioritize other courses we were attending over this project.
|
||||
In the end, we were able to implement all necessary features.
|
||||
|
||||
### If We Did This Again
|
||||
|
||||
#### Different framework
|
||||
@@ -661,6 +693,10 @@ Using .NET (which we considered initially) would probably solve these issues.
|
||||
Using private container registry would allow us to include environment variables directly in the image during build.
|
||||
This would simplify deployment and CI/CD setup.
|
||||
|
||||
#### Start sooner
|
||||
The weekly meetings helped us to start planning the project earlier and avoid spending too much time on details,
|
||||
but we could have started earlier if we had more time.
|
||||
|
||||
[What would you do differently? What worked well that you'd keep?]
|
||||
|
||||
### Individual Growth
|
||||
@@ -678,8 +714,14 @@ used not only by myself.
|
||||
|
||||
#### [Dejan]
|
||||
|
||||
Since I do not have a job, this project was probably the most complex one I have ever worked on.
|
||||
It was also the first school project where I was encouraged to use AI.
|
||||
Since I do not have a job and I am more theoretically oriented student (I am more into math, algorithms, cryptography), this project was probably the most complex one I have ever worked on.
|
||||
For me, it was a great experience to work on an actually deployed fullstack app and not only local development, that I was used to from the past.
|
||||
|
||||
It was also a great experience to collaborate with Lukas who has prior experience with app deployment and infrastructure.
|
||||
Thanks to this, I learned a lot new technologies and how to work in a team (First time reviewing PRs).
|
||||
|
||||
It was challenging to wrap my head around the project structure and how everything was connected (And I still think I have some gaps in my knowledge).
|
||||
But I think that if I decide to create my own demo project in the future, I will definitely be able to work on it much more efficiently.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,73 +1,21 @@
|
||||
# React + TypeScript + Vite
|
||||
|
||||
This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
|
||||
This directory contains the frontend code.
|
||||
|
||||
Currently, two official plugins are available:
|
||||
## Directory Structure
|
||||
|
||||
- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) (or [oxc](https://oxc.rs) when used in [rolldown-vite](https://vite.dev/guide/rolldown)) for Fast Refresh
|
||||
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh
|
||||
|
||||
## React Compiler
|
||||
|
||||
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see [this documentation](https://react.dev/learn/react-compiler/installation).
|
||||
|
||||
## Expanding the ESLint configuration
|
||||
|
||||
If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:
|
||||
|
||||
```js
|
||||
export default defineConfig([
|
||||
globalIgnores(['dist']),
|
||||
{
|
||||
files: ['**/*.{ts,tsx}'],
|
||||
extends: [
|
||||
// Other configs...
|
||||
|
||||
// Remove tseslint.configs.recommended and replace with this
|
||||
tseslint.configs.recommendedTypeChecked,
|
||||
// Alternatively, use this for stricter rules
|
||||
tseslint.configs.strictTypeChecked,
|
||||
// Optionally, add this for stylistic rules
|
||||
tseslint.configs.stylisticTypeChecked,
|
||||
|
||||
// Other configs...
|
||||
],
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
project: ['./tsconfig.node.json', './tsconfig.app.json'],
|
||||
tsconfigRootDir: import.meta.dirname,
|
||||
},
|
||||
// other options...
|
||||
},
|
||||
},
|
||||
])
|
||||
```
|
||||
|
||||
You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules:
|
||||
|
||||
```js
|
||||
// eslint.config.js
|
||||
import reactX from 'eslint-plugin-react-x'
|
||||
import reactDom from 'eslint-plugin-react-dom'
|
||||
|
||||
export default defineConfig([
|
||||
globalIgnores(['dist']),
|
||||
{
|
||||
files: ['**/*.{ts,tsx}'],
|
||||
extends: [
|
||||
// Other configs...
|
||||
// Enable lint rules for React
|
||||
reactX.configs['recommended-typescript'],
|
||||
// Enable lint rules for React DOM
|
||||
reactDom.configs.recommended,
|
||||
],
|
||||
languageOptions: {
|
||||
parserOptions: {
|
||||
project: ['./tsconfig.node.json', './tsconfig.app.json'],
|
||||
tsconfigRootDir: import.meta.dirname,
|
||||
},
|
||||
// other options...
|
||||
},
|
||||
},
|
||||
])
|
||||
```
|
||||
- `public/` - static files
|
||||
- `src/` - frontend code
|
||||
- `assets/` - static assets
|
||||
- `pages/` - React pages
|
||||
- `api.ts` - API client
|
||||
- `App.tsx` - React app
|
||||
- `main.tsx` - entry point
|
||||
- `index.css` - global styles
|
||||
- `config.ts` - configuration
|
||||
- `ui.css` - UI styles
|
||||
- `vite.config.ts` - Vite configuration
|
||||
- `package.json` - NPM dependencies
|
||||
- `tsconfig.json` - TypeScript configuration
|
||||
- `index.html` - HTML template
|
||||
-
|
||||
|
||||
Reference in New Issue
Block a user