Our Angular coding challenge is a web-app to list and post a short pitch of your company idea looking for investors. Where a user can see the recently posted messages and post their own. We have a base Angular App and local Node Server ready to run.
We want to see your code quality, organization, understanding and contribution to the project.
For the sake of simplification, we assume the user is already logged and authenticated on the environment.
Following we have the list of requirements and information about the current App:
-
Post Message Form: Opening on the side panel, we will have two types of messages for the user to choose:
A. Type: Comment - content (required)
B. Type: Pitch - company name - pitch (required) - company evaluation ($ - required) - shares offering (% - required > 0) - price for the amount of shares ($ - required)
-
The field "shares offering (%)" should be a slider component
-
Ways to close the side panel
-
Use the route to activate the side panel (some child route like: /message)
-
When clicking on a user name, open the Side panel with the Post Message Form, and the content as "@username" fulfilled
-
Add a State Management solution for Users and Messages (anything from a simple RxJS service, to a more robust solution such as Akita or NgRX)
- Improve the overall look and feel
- Enforce Types everywhere
- Search messages by content
- Organize the PostMessage Components on a Angular Module with Lazy loading
- Test for Services and Components
- Your contributions: what can you do to make it better?
- GET /api/messages
- POST /api/message
- GET /api/users
- GET /api/user/current
Note: improvements on the sample NodeJS server are a plus, but keep in mind the challenge and evaluation is focused on the FrontEnd side of the project
Server:
npm run start.server
Angular app:
npm start
- Understanding of core Javascript/Typescript concepts
- Understanding of Angular and RxJs
- Code and component reusability/scalability/best practices
- Code design
- Understanding of the project and contributions