Full description here
Application represents the platform to allow users to communicate via public text messages. Before
starting to use the service a guest must register and sign in, after that all http-requests have to
contain rs-email
, rs-uid
and Authorization
headers.
Authorized user can see vertically divided main page, where left side is a list of public group and right side is a list of people including personal conversations. Each user can create own public group and broadcast messages there or use existing group along with other participants.
Personal information can be viewed on a special profile page, where it can be immediately edited.
Detailed information about each part of the application is presented in the sections:
- Registration
- Login
- Profile
- Update profile
- Logout
- People and group sections
- Group dialog
- People conversation
- 404 page
- Bonus: Style theme
This project is intended for individual performance using the real one-for-all server. You can check out your colleagues with their progress and be faster and more productive, because everyone should have the same functionality.
- Angular 17
- RxJs
- NgRx
- ESLint
- Prettier
- SCSS
- Angular Material
Single server provides sharing data and all students can interact with it reading and writing other data. Each student's frontend project must be identical in functionality and any student opening another student's project should have the same capabilities.
- all users are located in different timezones. Server keeps date and time in UNIX timestamp format (as number), but you have care about appropriate timezone for everyone.
- server does not contain sufficient protection, for learning purpose we cut cumbersome redundant processes in order to focus on crucial features. Do not try to break it but inform us if you find critical defects.
- all transmitted data is public including personal email and messages. Do not use any sensitive data.
- server may have restrictions or limitations in data response if DB contains a lot of records. We are sincerely asking you to use it only to make sure the application works but do not overuse it for fun.
Pages available only for users before authorization. That pages are not available for users after successful authorization and protected by Guards.
/signup
(registration)
Page to create new account.
/signin
(login)
Page where user can enter email and password to enter the platform. Default page for
non-authorized users.
That pages allowed only for authorized users. Should be protected by Guards.
/
(main page)
Page with group list and people list.Default page for authorized users.
/profile
(user profile)
User's information with the ability to edit it.
/group/{:groupID}
(broadcast page)
where, :groupID
is unique group identifier;
Page where user can send message to all participants.
/conversation/{:conversationID}
(person dialog)
where, :conversationID
is unique room identifier with interlocutor;
Page where user can write personal messages directly.