This is the Zuri Chat Android app project repository handled by TEAM SOCRATES, written with pure Flutter.
NB: Always contact Team leads before attempting any task except assigned to.
- All team members must adhere to the following instructions while working on this project.
- Make sure you understand the project architecture before proceeding with any task.
ZuriChat is a mobile application clone of the already existing slack application with extra features like music room, chess room, meeting room etc etc.
Music room: A room for shared playlist where users can add, play and share songs amongst one another.
Meeting room: A room where meetings can take place amongst members. The meeting room also has a whiteboard where designs and texts can be created to better visualize points of discussion and for better understanding.
Documentation room: A room that has the company's documentation, files and folders and so on.
Avatar room: A room where you can design or choose an avatar that best describes your expression.
The figma design that will be implemented for this project can be found here
Hosted App Link
Here is the link to the app hosted on appetize.
i. Naming Convention:
|Classes, enum types,typedefs,and type parameters,etensions
|An example is HomeScreen
|Libraries, packages, directories, and source files, import prefixes
|An example is home_screen
|Class members, top-level definitions, variables, parameters, and named parameters, constants
|An example is verifiedUser
ii. Style Rule
- Always declare return types in your methods.
- Put required named parameters first.
- Always require non-null named parameters (@required).
- Indent your code where appropriate
(e.g Use two-space indentation.)Click Here to know more
Steps to collaborate on the repository for team members.
Forking and Cloning Repo
- Fork the project.
- Click on the "Code" button on the Repo page.
- Copy the URL for the forked Repo "https://github.com/your-github-username/zc_app.git"
- Open your Code Editor and run
Add "Remote To" and "Pull From" Upstream
- Add a Remote to Upstream to your Repo: Using the command :
git remote add upstream
- Pull from upstream to download all changes in the project using
git pull upstream develop
Complete assigned task/issue
- Open the project in your IDE or Code Editor.
- Complete your assigned task.
Create and Commit Changes to a New Branch
When your task is completed:
- Create a new branch with your task name e.g "feat- UserSignUP".
git checkout -b feat/yourTaskPush to github;
git add .
git commit -m "feat: Inplemented yourTask"
Push New Branch to "Origin" Repository
- To make sure there are no conflict, Pull from upstream using
git pull upstream develop
- Push your branch changes to the Repo using
git push origin "feat/yourTask"note how it end with a branch.
Creating Pull Request
When making a PR, your PR is expected to have the following comments"
- What is the task/issue completed?
- What does the PR actually do?
- How can the PR be manually tested?
- Screenshots(of your implementation - A mobile screen or an APi payload).
You can check out this [document](https://docs.google.com/document/d/17uBPEtzHiTRo2lDhHdEHqlZzeCxYRwaqkvHIc9VluNE/edit?usp=sharing) for further information on the architecture.