jerrydngzh / 372.projdev Goto Github PK
View Code? Open in Web Editor NEWa geospatial journaling application to help you reflect on your moments
a geospatial journaling application to help you reflect on your moments
blocked by #26
option for media uploads (leave tags out for now)
can edit media (once #33 is done)
resources:
currently our backend services are fairly isolated, meaning any logical sequence of operations that involve both the memo & user service are handled as separate calls from the client.
// CreateMemo.tsx, handleSubmit()
...
const createdMemo = await MemoController.create_memo(currentUser.uid, memoToCreate);
const newMemoId = createdMemo._id;
let newUserData: any = userData;
newUserData.memos = [...userData.memos, newMemoId];
const user = await UserController.update_user(currentUser.uid, newUserData);
...
memo_id
, the system will be left in a inconsistent state.Our backend services also do not expose appropriate types of the result they return. On the client-side project, most of our backend calls return a Promise<any>
if not specified the return object type.
currently the CreateMemo component doesnt have access to the client's version of user data (and memos)
UserType
object with an empty memo list + the new the new memo_idBLOCKING:
components/Dashboard/
or making use of contexts with maintaining the state of user data + memos before this change can be donewhile it is okay to make separate calls for creating a memo then a call to update the user, changes on the backend will be dealt in the future (see #57)
the owner of this project called me some bad words
workflow:
uuid-file_name
, stored on cloud storage w/ structure /uid/filename
accessing images on client:
update createMemo map to only show one marker
decoupling components for iteration 2 due to model design mismatch against backend
Folder Structure (frontend):
components/
CreateMemo/
components/
...
Profile/
...
pages/
MainPage.tsx
EntryPage.tsx
...
models/
controllers/
useFirebaseAuth()
hook provided in the context....
const { currentUser } = useFirebaseAuth()
const uid = currentUser.uid
...
see https://firebase.google.com/docs/auth/web/manage-users?authuser=0#get_a_users_profile for more information
Currently the way we navigate between pages is clunky and doesn't present an anchoring logical view of the application state. We have a lot of white space on the page that isn't appropriately used, this could be an appropriate replacement for.
Have a navbar/sidebar of some sorta grouping together the main navigation pages of the application:
Refactor backend error handling to use the middleware error handler instead of rendering jade view templates.
DO THIS BEFORE #61
please refactor the dashboard and modularize components:
a suggested example file structure:
Dashboard/
components/
LocationItem.tsx
LocationMemoList.tsx
Popup.tsx
page.tsx
a logical flow of components and the component tree:
take a look at:
adding a list view to the lens page.
Additionally will add a toggle element to switch between views
blocked by:
resources:
noticed that the map for create memo does not support scrolling in and out for zoom like in the Lens map view
rich content display of a memo
if you have anything to add in, add it in as a comment in this issue
display rich text of a user profile
Need to add different type of role in addition to the normal user.
Will implement Admin role + Admin page.
Admin will have access to a page where they are able to use the get all endpoints for all the services.
Thats about it. This is just to satisfy the project requirements.
a user can select certain memos to privately share via a set authentication method
editing & deleting of memos on the dashboard display
Map marker for leaflet not loading.
maybe? https://stackoverflow.com/questions/65758463/react-leaflet-marker-image-fails-to-load
Profile page rn looks horrendous rn.
Will focus on styling it first. Then add some basic customization features maybe?
we have lots of dead, unperformant and/or unmodular code that could be removed and restructured to allow ease of development
Extracting some parts of code into their own components for reusability.
Need to sync frontend data models to be consistent with mongoose data schema.
Add proper error handling for all controllers. Throw error to frontend to show an error state instead of logging in console.
Current issues:
Since #32 will use similar form codes for editing mode on popup, I'm planning to take the form section including map, saved location, Memo Name, Memo description out as a subcomponent for reuse
Admins prob shouldnt be able to delete themselves.
Also style the table a bit better..
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.