Trello board:https://trello.com/b/GsXjMRNF/ai-ar-chatbot-team
Done
- All of us: Brainstorm about the function
- All of us: Discuss about the framework and technology stack
- Ada: Making a project video
Done
- All of us: Continue watching tutorial videos
- Ada :Creating Project Framework
- Xinyu: Integration the Chatbot onto the website
- Ada :Implement basic login and register, already connected to MySQL
- Team desicion on daily regular meeting
- Jie: Connecting with UoB SU's sustainability team
- Team Decision on Open-Source contract with IBM
Material: 1.Crash Course on back-end logic(13min) 2. Crash Course on Springboot(1h) Highly recommended! 3. Crash Course on back-end and front-end development Vue+MybatisPlus
Getting Started Setup
- Download MySQL. During installation, you may be prompted to set up a root user and password.
- Download Navicat and connect to the server.
Done:
- All of us: Decide on division of labor:
- front-end: Xinyu, Yuxin
- back-end: Ada, Jie, Xinyue
- Xinyu & Ada: Implement front-end and back-end separation and solving cross-domain issues with Nginx reverse proxy
- Xinyu: Refactor front-end with Vue.js, establish basic layout of the website
- Yuxin: working on CSS of the layout
- Jie & Xinyue: Training AI chatbot, planning dialogue and logic, input entities and intents
- Team desicion on regular on-site work on Tuesday and Thursday
- Jie: As the lead presenter in the meeting with IBM stakeholder and supervisor, working on slides and reports; Making a Demo Project and send to the IBM
- Team desicion on regular on-site work on Tuesday and Thursday
- Team desicion on rotate as the lead presenter so that everyone can better understand the project
Starting the project
As we have implemented the front-end and back-end separation and using the Nginx, we should start the project as the following:
- goto
AI-AR-chatbot-Bristol-Msc-Summer-Project\Document\start-up\nginx-1.26.1
and runstart nginx
- goto
AI-AR-chatbot-Bristol-Msc-Summer-Project\code\front-end\glife
and runnpm run dev
- Then start the server in IDEA, and type
localhost
in browser
- Xinyue: Being the lead presenter in the meeting with IBM stakeholder and supervisor
- Ada: Implement back-end logic of assistant, collaborate with front-end element
- Xinyu: Implement front-end logic of day routine, login
- Yuxin: working on front-end UI, implemented Title fixed on above
- Xinyue & Jie: Perfecting the logic of AI chatbot
Future work:
- While Xinyu working on the core front-end Day routine part, the team decided to move to AR.js part
- Xinyue, Jie and Yuxin will move to AR.js front-end implementation
- Ada will learn about Redis and WebSocket
ARTree logic:
-
Plant Tree
- Loaded model in front of the user
- when user selected "Plant tree", the current location information will be sent to backend and stored in Redis
-
Look Tree:
- while user moving around with the page of AR, his location will be updated using websocket
- Constantly look into Redis database to check the distance between every location stored in the database and the user's current location.
- if detecting the distance is less than 5 metres, the model should be loaded
This week we attend the project meeting for the whole graduates and gain a lot of suggestions on user's experience.
- Xinyue: Design and draw the badge system. Working on database of Badage and user_badge
- Xinyu: Write the front end logic of assistant and day routine, use cookies to store session.
- Ada: Implemented the Redis usage of Caching. Assistant selected option can now added to day routine through backend.
- Yuxin: Refactor the layout of the whole page. Added Welcome page and Error page for better user's experience. Refactor the Navigate bar after the meeting.
- Jie: Implemented AR.js, working on the improvement of "planting tree".
My badge & My tree part
- photos : put photos and models under Vue folder
- backend: use codes passing to frontend
- Database of Trees and badges for init and any update
Redis Improvement parts
- Redis:implement verification code caching
- Redis: implement data IO
Spring Cache
- Redis in AR tree part:
- Redis for storing geo information
GEOADD user_locations <longitude> <latitude> <user_id>
GEORADIUS user_locations <longitude> <latitude> 5 m
- Optimizing Queries
- cache mechanism: if user's location is within 10 meters, the cache won't change for now, any queries will store in the Redis for 10 minutes
- Optimizing data structure:
GeoHash
in Redis &ConcurrentHashMap
for caching
- Redis for storing geo information