Verbosify is an open-source WinForms application built with .NET, designed to help teachers and students communicate effectively by managing feedback and tracking goals. Teachers can leave feedback for students, while students can register goals and subgoals to improve their learning experience extended with gamefication elements.
Explanation Video / Pitch of System(CLICKME)
- Features
Deprecated N-Tier Architecture- Monolith Architecture
- Installation
- Usage
- Documentation
- Contributing
- License
- Teachers can leave feedback for students.
- Students can register goals and subgoals.
- Students can be motivated by gamification elements, including:
- Experience Points (XP) earned for completing assignments and providing feedback.
- Student level system based on XP, allowing students to progress and challenge themselves.
- Leaderboards displaying student rankings based on their level.
- Visual badges to recognize students' achievements and contributions.
- Titles that students can earn and use for specific visualizations.
- Intuitive and user-friendly interface.
- Secure data storage and handling.
- Easily customizable and extensible.
โ ๏ธ Deprecated: The initial design of Verbosify involved an N-Tier Architecture. However, during the development process, it was determined that the N-Tier Architecture made the modeling of the software using UML more challenging. As a result, the architecture was deprecated, and the system has been implemented using a different approach.
The project is built using the N-Tier architecture, which allows for a scalable, maintainable, and modular application. The architecture is divided into the following layers:
FBS.Entity: Contains the entities: Feedback, Goal, Group, Student, Subgoal, and Teacher.FBS.Repository: Includes all SQL statements that interact with the SQL Server.FBS.DataAccess: Data access layer containing the connection string for the database.Frontend: Contains the WinForms forms for the user interface.FBS.Testing: Contains a console app to test the SQL connection.
๐ง Transitioned to Monolith Architecture: Based on valuable feedback received, the project has transitioned to a Monolith Architecture. However, some aspects of layering have been retained to maintain a logical separation of responsibilities.
In the updated architecture, the frontend of the application utilizes WinForms, where all designs and methods are implemented using classes. The classes contain lists and objects that are populated by methods referencing the data access layer. For example, the Student
class includes a StudentDal
(StudentDataAccessLayer), which is responsible for executing SQL queries and interacting with the database. This design choice aligns more closely with the UML diagrams, as suggested by Miel Noelanders.
By adopting the Monolith Architecture with a partial layering approach, the application still benefits from a modular structure while ensuring simplicity and easier alignment with the UML diagrams.
- Clone or download the project to your local machine.
- Open the solution file in Visual Studio.
- Restore the database using the provided bak file located in the project root directory. This can be done by opening SQL Server Management Studio, right-clicking on the Databases folder and selecting "Restore Database", then selecting the .bak file and following the prompts to restore the database.
- Update the ConnectionString inside FBS.DataAccess with the appropriate server name and database name. This can be done by opening the FBS.DataAccess project in Visual Studio, opening the
/FeedBuf/FeedbackCollection/DataAccess.cs
file, and updating theconnectionString
property with the appropriate server name and database name. - Install the SQL Server NuGet package by right-clicking on the solution in Visual Studio and selecting "Manage NuGet Packages...", then searching for and installing the
System.Data.SqlClient
package. - Build the solution in Visual Studio.
-
Restore the database using the provided bak file located in the project root directory. This can be done by opening SQL Server Management Studio, right-clicking on the Databases folder and selecting "Restore Database", then selecting the .bak file and following the prompts to restore the database.
-
Update the ConnectionString inside FBS.DataAccess with the appropriate server name and database name. This can be done by opening the FBS.DataAccess project in Visual Studio, opening the
/FeedBuf/FeedbackCollection/DataAccess.cs
file, and updating theconnectionString
property with the appropriate server name and database name. -
Install the SQL Server NuGet package by right-clicking on the solution in Visual Studio and selecting "Manage NuGet Packages...", then searching for and installing the
System.Data.SqlClient
package. -
Run the Windows Forms application called FeedBuf by opening the Frontend project in Visual Studio, setting the startup project to FeedbackBuf, and running the application. Once the application is running, you can log in as a teacher or a student and begin using the application to manage feedback and goals.
In order to maintain a clean and well-organized codebase for the Verbosity project, we require all contributors to follow these commit guidelines. This will help ensure a smooth development process and easy collaboration among team members.
- Always create a new branch from the
staging
branch. - The branch name should be the name of the linear ticket you are working on, e.g.,
LIN-123
.
- Commit messages should be clear, concise, and written in the imperative form, e.g., "Add new feature", not "Adding new feature" or "Added new feature".
- Use the linear ticket name as a prefix in your commit messages, e.g.,
LIN-123: Add new feature
.
- When your work on the branch is complete and tested, create a pull request (PR) targeting the
staging
branch. - PRs should have a descriptive title and a detailed description of the changes made.
- For changes to be merged into
staging
, at least one team member must review and approve the PR. - For changes to be merged into
main
, at least two team members must review and approve the PR. - The
staging
andmain
branches are protected. Only approved PRs can be merged into these branches. - After the required number of approvals is reached, the PR author is responsible for merging the PR.
- Once the PR is merged, remember to delete the feature branch.
This project is licensed under the MIT License - see the LICENSE file for details.