The client is Looking for an experienced Angular4 + Nodejs (Express) developer who can build a solid foundation for developing long-term projects. The project would have a standard user authentication system (email) and a tab-enabled feature page with components whose states are stored in the backend.
There would be 2 separate repositories (1 for front-end and 1 for backend). The backend is an API built with ExpressJS. Good documentation on the API as well as how to expand on the feature page is also a requirement.
- User authentication (login/logout/signup/password-reset)
- User page (edit name, deactivate an account, delete account)
- Feature page with tabs (add a tab, delete or rename it)
- Feature page's each tab has a component with a text area. The content of this text area is saved automatically with and without the saving button.
- Possible database schema:
- Users (email, first name, last name)
- Sessions (auth stuff)
- Pages (base page's components' states are stored)
- Angular4 intermediate to expert level (use angular-CLI)
- Express.js (for backend API)
- PostgreSQL (Sequelize)
- Use bootstrap for design
- Documentation on the backend API
Angular4, Express is one of our areas of expertise. We worked on a survey app project that was designed for the owners to create/edit/delete/publish multiple surveys for the mobile devices. The surveys can contain multiple questions of various types on different types. Users can also create and define validation rules, auto-submit rules and display rules for each specific question. Survey themes can also be customized & a preview is generated on the screen.
Technologies used to create UI - Angular 1.6.3, Bootstrap, HTML & CSS
Another project was for an Irish client and is developed in the same technologies. The project was about graphical visualization of the data and users can create their widgets on the fly.
Our Possible Approach
We can use Yeoman or Jhipster for project building and setup. For authentication purpose, we would use a token-based system. When a login request having a username and password is made to the backend, we'll validate the user by querying in the database and generate a request token. On the front-end, we can store this token browser in local storage and provide token information in every request header for accessing restricted endpoints in the application and respond with JSON or XML.
We can use express.js and other node modules like node-Postgres, body-parser etc for creating APIs. Or, we can also use Loopback node.js framework, which is a complete ready package to use for this purpose. It also supports PostgreSQL through the connector. It uses CLI for generating the models and can automatically generate and provide API explorer.