{"id":18783428,"url":"https://github.com/futuresea-dev/message-app","last_synced_at":"2025-12-20T15:30:21.101Z","repository":{"id":157980021,"uuid":"530268304","full_name":"futuresea-dev/message-app","owner":"futuresea-dev","description":null,"archived":false,"fork":false,"pushed_at":"2022-08-29T18:03:03.000Z","size":6,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-12-29T11:44:43.450Z","etag":null,"topics":["php"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/futuresea-dev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-29T14:58:13.000Z","updated_at":"2024-03-28T17:16:10.000Z","dependencies_parsed_at":null,"dependency_job_id":"eb03fd49-826b-4b5b-9e20-dd17a195eb81","html_url":"https://github.com/futuresea-dev/message-app","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futuresea-dev%2Fmessage-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futuresea-dev%2Fmessage-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futuresea-dev%2Fmessage-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/futuresea-dev%2Fmessage-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/futuresea-dev","download_url":"https://codeload.github.com/futuresea-dev/message-app/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239699579,"owners_count":19682574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["php"],"created_at":"2024-11-07T20:39:18.728Z","updated_at":"2025-12-20T15:30:20.741Z","avatar_url":"https://github.com/futuresea-dev.png","language":"PHP","readme":"# Job Skill Assessment Test\n\nWhat we expect from you?\n1. Use OOP\n2. If you understand S.O.L.I.D. principle, please use it, that's a big plus\n3. We prefer quality over quantity, meaning: it's better to submit quality coded un-fished task than finished task with spaghetti code.\n4. Use GIT as VCS\n5. Your final code does not need to have \"fancy\" styled output. You can use console or webpage for output. Unit tests would be actually the best choice. Basically, provide us simple as possible way to see your code in action.\n\n# What do we want you to build? (PHP)\n\nYou need to code the core structure for a messaging app.\n\nThis messaging app has 3 different user types: Student, Teacher and Parent\n\n# Each user type should have:\n\n1. User ID (required)\n2. First name (required)\n3. Last name (required)\n4. Email (required)\n5. Profile Photo (optional)\n\n\n# Difference between user types:\n\n1. Teachers and Parents have Salutation (optional), it's used in the field \"full name\".\n2. Teachers can send messages to any user type\n3. Parents and Students can send message only to Teachers\n\n\n# After initialising the user object we need to have following options:\n\n1. user object needs to have an option to get the full name.\nFor Students full name is combined from: first name + last name.\nFor Teachers and Parents is built from: salutation + first name + last name.\n2. We need a way to get the profile picture. If there is no profile picture when initialising the user object, we need to get the path/url to a default avatar.\n3. Get email\n4. Get user id.\n5. We need a process to save the user. On save we need to validate email and profile picture. As this is only test, for the profile picture do not make a complex validation, only check if the passed string ends with .jpg, if not save should fail.\nAlso, this save feature does not need to actually save the user, instead it should only return success if validation passed, and fail if not.\n\n\n# Each message needs to have (all required):\n\n1. Sender\n2. Receiver\n3. Message text\n4. Creation time (Unix time format)\n5. Message type: System or Manual\n\n\n# For each message we want to have the following features\n\n1. System messages can only be sent from Teachers and only to Students.\n2. Process to get full name of sender and receiver\n3. Process to get message text\n4. Process to get message type\n5. Formatted creation time\n6. Option to save the message. same as for saving a user, we don't need the actual saving, we just need validation.\nFor example, if we create new message instance and we set Student as sender, but we also set message type to System, save message should fail as Teacher can only send System messages.\n\n# How final code should look?\n\nWe don't want you to implement database or some other data storage provider.\n\nWe want code where you/we can create new object instances and pass hard-coded data just for tests. If coded properly, you should be able to easily connect your code with DB.\n\nYour code should be clean and easy for read.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuturesea-dev%2Fmessage-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuturesea-dev%2Fmessage-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuturesea-dev%2Fmessage-app/lists"}