CSE408 - Software Development Project - Documentation
CSE408 - Software Development Project - Documentation
Supervisor:
Tahmid Hasan
Assistant Professor
Prepared By:
2 Project Features 3
2.1 User Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.2 Email Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.3 Profile Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.4 Employee Management . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.5 Order Placement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2.6 Estimation and Budgeting . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.7 Comment Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.8 Work Progress Tracking . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.9 Payment Flexibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.10 Feedback and Reviews . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.11 Performance Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.12 Notification System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.13 Project Archive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.14 Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3 Technology Stack 5
3.1 Programming Languages . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2 Frameworks and Libraries . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2.1 Back-End Libraries . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.2.2 Front-End Libraries . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 Database Management . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.4 Server and Hosting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.5 Version Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.6 Continuous Deployment & Continuous Integration . . . . . . . . . . . . 8
4 Conclusion 8
Showvik Biswas, Fabiha Tasneem, Anup Bhowmik
1 Introduction
• Project Name: CommuniCreate.
2 Project Features
2.1 User Management
• Creative Content Agency: Agency can create an account on behalf of their
company, and create advertisements, designs, posters, and videos for their Clients.
They can also add employees with specific roles.
• Client Company: Client can place orders for creative content and browse Con-
tent Agency Pages. Clients can also leave reviews after receiving content from
any Agency.
3
Showvik Biswas, Fabiha Tasneem, Anup Bhowmik
• Agency Side: Agencies accept the order if they like the offered request.
• Client Feedback: Clients review the estimated budget and provide feedback or
preferences to the agency.
• Order Finalization: When the estimation is finalized and agreed upon by both
parties, an official order is placed.
• One-Time Payment: Clients can make the full payment before or after project
completion or during any time of the process.
• Taskwise Payment: Clients can opt for partial payments based on task mile-
stones. Advanced payment can be made too.
4
Showvik Biswas, Fabiha Tasneem, Anup Bhowmik
2.14 Search
Any User can search for any other users, Agency names, or Client Company names.
They can also search for any particular request or estimations that are owned by their
own Agency/Company. They can also filter the results using tags. An agency can
search for its own employees too.
3 Technology Stack
3.1 Programming Languages
Our whole project was based on JavaScript.
• Front-End: React.js (an open-source front-end JavaScript library)
• Back-End: Node.js (an open-source, cross-platform JavaScript runtime environ-
ment)
5
Showvik Biswas, Fabiha Tasneem, Anup Bhowmik
7. UUID: A library for generating universally unique identifiers used for generating
transaction IDs for payment.
4. Next UI: A library for building user interfaces with React. It offers various UI
components and tools.
6. Axios: It is a popular JavaScript library for making HTTP requests, often used
in React applications to interact with APIs and fetch data.
8. Universal Cookie: A library for managing cookies in both server-side and client-
side JavaScript applications.
11. Lottie: A library for rendering animations and graphics created in Adobe After
Effects as JSON files.
12. Formik: A form management library for React that simplifies the process of
handling form input and validation.
6
Showvik Biswas, Fabiha Tasneem, Anup Bhowmik
1. Back-End Repository
2. Front-End Repository
• Scrum Board: We had one Scrum board to keep track of our work. This
approach followed Agile methodologies and promoted collaboration among team
members.
• Issues and Milestones: Github issues and milestones were used to track tasks,
bugs, and project goals. We used Github issues for code discussions, feedback,
and collaboration on those issues. We assigned an issue to a particular member
who would solve it. After solving it, that assigned member closed the issue.
7
Showvik Biswas, Fabiha Tasneem, Anup Bhowmik
• Pull Requests: To discuss the workflow for code reviews and contributions, we
used pull requests in Github.
4 Conclusion
The CSE408 course project was something that all three of us enjoyed. We are grateful
to our course instructors for always inspiring us to pursue this enriching experience
while also having fun. We are sure in the future we all will look back on this project
experience with fondness. And we hope this documentation serves as a proper guide
for future students.