Skip to content

Aminekabene/CRM-Software

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Soen490 Team Badob Tech

Node.js CI License

Project description

The goal of this application is to answer all business needs. To be more exact, this software is motivated by entrepreneurs who deal with service-based businesses. This application will help them boost productivity by funnelling the business into a single software so that they have an easier time having an overview of their business, employees, and clients. In addition, compared to other competitors, this software will be an in house solution. Hence, users of the application will be able to control, customize and maintain based on their needs.

The project will be split into 4 different sections: Admins, business, employees, clients. Each of these sections are able to see information about the sections below them, but not the other way around. For example, businesses can see info about their employees and clients, but the employees and clients can’t see info about the business.

Meet the team!

Name GitHub handle Student ID
Amine Kabene Aminekabene 40156333
Simon Lim nasaku898 40087893
Manraj Rai Manraj45 40084677
David Thai davidthai0387 40097613
Judy Mezaber jmezaber 40102104
Kevin Ghannoum kevin-ghannoum 40088808
Lauren Lim Mnx458 40097885
Bowen Song bowsong 40092922
Samuel Huang huangs08 40098855

Technology overview

Technology/Tool Justification
Development platform Web Web applications are accessible to different platforms (mobile, tablet, computer). Indeed, for a business management software, offering a wide range of support is essential for productivity as the company would not have to worry about limiting their device requirement.
Programming Language React + Node +Typescript React: React has resourceful documentation and a big dev community behind it. It provides modular features by breaking down the application into smaller components. It provides state management out of the box. It is fast since it uses a virtual DOM. Therefore, given the complexity of a business management application, using React makes sense for developing a complex UI that contains a lot of data.

TypeScript: It allows for a more structured code compared to JavaScript because it follows OOP procedure and is a type language. Consequently, applying good practice and design patterns in our application would help make it more robust. Similarly to React, there is a big dev community. Therefore, there would be a lot of libraries that can help us implement certain features more easily.

Node: Node is a fast and lightweight runtime environment. This will allow us to develop faster and more efficiently. In addition, having the same runtime environment for both frontend and backend allows our app to have a uniform language. The reason why we decided to use Node instead of other frameworks such as Spring is because out of the box there isn’t much “bloatware”. Therefore, we can decide on what we want by installing the required dependencies as needed based on the requirement. Consequently, we can optimize our application load and size to increase performance.
Agile Project management GitHub Project It is a free platform and the team has experience working with it. In addition, it has direct integration with the code base (linking PR’s with the user stories, wiki page, and much more)
Source code management Git Git is a commonly used source management tool and is integrated with GitHub.
Unit testing Jest + Enzyme Jest: Jest is well-supported and reports a very fast testing library due to its use of parallel testing. Also, it supports snapshot testing. With Jest we are not required to include additional libraries unless really needed. It includes code coverage

Enzyme: Enzyme is used for UI Testing. It is compatible with Jest and is specifically designed to work with React.
System testing Cypress Cypress allows us to test user interaction with the system (e2e) which would verify the validity of user stories. It is easy to install and includes built-in tools that allow automated testing. It takes screenshots and videos that can later be used to analyze the tests.
UI prototyping Figma Figma is a free platform. Community templates can be imported Additionally, the UI prototype can be exported to CSS. Also, user interactions can also be simulated.
Code quality/Linter ESlint ESLint is a commonly used static analysis tool with Typescript It verifies if the code respects the ES standards. It can be customized to use our own lint rules, configurations, and formatters.
CI GitHub Actions Free and integrates easily with the project
Database MySQL Our application has a complex database design. In fact, there will be a lot of entities. Hence, a relational database would be needed for the project since it is structured and supports complex queries. MySQL supports multi-users. It is fast and secure. It is easy to install and has a lot of community support. Also, it is commonly used for web applications.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published