This week I hope to finish the Neo4j helper functions. Then I’ll rewrite the logic of the application server to use Neo4j, and then I want to create the money pool events and its relation with the users. I think that will give enough work to keep me bussy for the rest of the week (maybe part of the next week too). Right now the nodejs framework available for neo4j is only a driver that lets you create a session and execute text queries. I want to write a more friendly interface for the programmer to interact with the database, similar to mongoose but for Neo4j.
My ideas for the new schemas are: The user has its profile in the properties of the node. A money pool is another type of node. Thus the users can have edges between them with the label ‘friends’ and there can be relations between the users and the money pools with the label ‘participates_in’ or something similar.
I ended up doing something else than what I said. I migrated the project to TypeScript and did the setup (again), I started to write helper classes and functions to work with Neo4j (our new database) and Marco created a little mockup of the android app.
This week we’ll continue writing tests for the server, and then developing to make the server pass these tests. I still want to find out what other kind of tests we should include.
I also expect to start working in the android App, we’ll create a few mockups for the app. And from there maybe give it some basic navigation functionality, I don’t know at this point, it all depends in how we advance in the Mobile development class.
This week I worked in setting up the api server. As today (january 20) we have the server up and running with signup and login methods, hashing the passwords. We have mocha tests passing. We wrote the code first and then I started searching for the test framework, but from now on we will start doing test driven development. We will define all the routes we want, what they should they do and how do we expect them to behave (errors, validations, status codes, etc.).
This is the repo for the backend: https://github.com/Web-Moviles-Spring18/Web. I will change the main branch from master to develop (a new one) and tell my team to start using gitflow (maybe I’ll have to tell them to learn it first, I’ll give ’em this tutorial: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow).
We still don’t have anything for the Android app, but I really, really want to experience using kotlin.
We decided to change the project, instead of a note app we will be an app to split restaurant and similar stuff charges.
This week we will be polishing the idea (defining the specifics) and will create the mockups, but the technologies will remain the same (nodejs + express + react) and Android native, we are also thinking about using Stripe to handle payments (that’s still in discution).
As for me, this week I’ll setup the backend project, because before starting to work in the app we need first to define the UI, etc.
Our project for the semester will be a note keeper app, this app will keep track of the notes you’ve writen as well as its classification and share these notes with other users.
Our note app will have the advantage that you will be able to take a photo from some text and it will extract the text from the image and put it in a note (The image will need to be clear and also be text in its most part). Imagine that a professor wrote something important in the board and then, instead of writing it down by yourself you can take a picture of the board and then have it automatially converted in a note, now you are able to share it with others.
This app will be developed by Francisco, Marco, Estefy and me.
We will be developing in native Android, and will (provably) use the Android OpenCV library and tesseract to perform the text extraction, we will create a nodejs server to share the notes. We’ll test our app following the recomendation of the android developers website.
From this course I really expect to learn how to properly test my code, with all kind of tests, not just unit testing. I expect to learn how to organize my tests and practice everything learned in class in a real project and also practice what I’ve learnend so far in other courses as well.
I expect to work with and be supported by my teammates, and support them as well. I want to have a clean project managment. I expect to read a lot of documentation from testing libraries and from whatever we develop the project on, follow the standards and so on, but not just learn to use one framework but to learn the principles of software testing.