Skip to content

Software Practice Empirical Evidence Database (SPEED), a searchable database of evidence about different claims about different SE practices

Notifications You must be signed in to change notification settings

hexwarrior6/CISE_SPEED

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

73 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CISE_SPEED - Software Practice Empirical Evidence Database (SPEED)

A full-stack web application designed as a searchable database of evidence about different claims regarding various Software Engineering (SE) practices. This platform allows researchers and practitioners to access, submit, and evaluate empirical evidence related to software engineering methodologies, tools, and practices.

CISE_SPEED Screenshot

πŸš€ Features

  • Article Submission: Users can submit articles with empirical evidence about SE practices
  • Search Functionality: Comprehensive search to find relevant evidence and studies
  • Rating System: Users can rate articles to provide quality feedback
  • User Authentication: Secure login/registration with role-based access
  • Role-based Access Control: Different permissions for regular users, moderators, and administrators
  • Admin Dashboard: Administrative tools for managing users and content
  • Moderation Queue: Review system for submitted articles before publication
  • Duplicate Detection: Automated system to identify potential duplicate submissions
  • Responsive Design: Works seamlessly across devices and screen sizes

Here are visual representations of key features:

Article Submission Form Search Interface Admin Dashboard Moderator Queue

πŸ› οΈ Tech Stack

The application follows a modern full-stack architecture:

System Architecture

Frontend

  • Next.js (15.5.3) - React-based framework
  • React (19.1.0) - UI library
  • TypeScript (5.x) - Type safety
  • Tailwind CSS (v4) - Utility-first CSS framework
  • Sass - CSS extension language
  • CSS Modules - Component-scoped styling
  • Formik & Yup - Form management and validation
  • React Hook Form - Alternative form management
  • React Icons - UI icons
  • Next-Auth - Authentication solution

Backend

  • NestJS (11.x) - Node.js framework
  • TypeScript (5.x) - Type safety
  • MongoDB - NoSQL database
  • Mongoose - ODM (Object Document Mapper)
  • JWT - Authentication tokens
  • BCrypt - Password hashing
  • Nodemailer - Email functionality
  • Class-validator & Class-transformer - Validation
  • Jest - Testing framework

πŸ“‹ Prerequisites

  • Node.js (v18 or higher)
  • npm or yarn
  • MongoDB (local instance or cloud service like MongoDB Atlas)

πŸ› οΈ Installation & Setup

1. Clone the Repository

git clone https://github.com/your-username/CISE_SPEED.git
cd CISE_SPEED

2. Set Up Environment Variables

Create a .env file in the backend directory with the following variables:

DB_URI=mongodb://localhost:27017/cise_speed
JWT_SECRET=your-super-secret-jwt-key
JWT_EXPIRES_IN=24h
PORT=8082
FRONTEND_URL=http://localhost:3000

For the frontend, create a .env.local file in the frontend directory:

NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your-next-auth-secret
BACKEND_URL=http://localhost:8082

3. Install Dependencies

# Install backend dependencies
cd backend
npm install

# Install frontend dependencies
cd ../frontend
npm install

4. Start the Application

# Terminal 1: Start the backend server
cd backend
npm run start:dev

# Terminal 2: Start the frontend server
cd frontend
npm run dev

The application will be available at http://localhost:3000

πŸ”§ Running in Production

Backend Production Build

cd backend
npm run build
npm run start:prod

Frontend Production Build

cd frontend
npm run build
npm start

πŸ§ͺ Testing

Backend Tests

# Run unit tests
cd backend
npm run test

# Run end-to-end tests
npm run test:e2e

# Run tests in watch mode
npm run test:watch

# Generate coverage report
npm run test:cov

Frontend Tests

# Run tests
cd frontend
npm run test

# Run tests in watch mode
npm run test:watch

# Generate coverage report
npm run test:coverage

πŸ—οΈ Project Structure

CISE_SPEED/
β”œβ”€β”€ backend/                      # NestJS API server
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ api/                  # API modules (article, user)
β”‚   β”‚   β”‚   β”œβ”€β”€ article/          # Article management
β”‚   β”‚   β”‚   └── user/             # User management and auth
β”‚   β”‚   β”œβ”€β”€ controllers/          # Additional controllers
β”‚   β”‚   β”œβ”€β”€ services/             # Additional services
β”‚   β”‚   β”œβ”€β”€ app.module.ts         # Main application module
β”‚   β”‚   └── main.ts               # Entry point
β”‚   └── package.json
β”œβ”€β”€ frontend/                     # Next.js web application
β”‚   β”œβ”€β”€ public/                   # Static assets
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/           # React components
β”‚   β”‚   β”œβ”€β”€ contexts/             # React contexts (AuthContext)
β”‚   β”‚   β”œβ”€β”€ hooks/                # Custom React hooks
β”‚   β”‚   β”œβ”€β”€ pages/                # Next.js pages
β”‚   β”‚   β”œβ”€β”€ styles/               # Sass stylesheets and CSS modules
β”‚   β”‚   β”œβ”€β”€ types/                # TypeScript type definitions
β”‚   β”‚   └── utils/                # Utility functions
β”‚   └── package.json
└── README.md

πŸ“– Usage

User Registration & Authentication

  1. Visit the application homepage
  2. Click on "Register" to create an account
  3. Use your credentials to log in

Registration Page

Submitting Articles

  1. Log in to your account
  2. Navigate to the "Submit Article" page
  3. Fill out the comprehensive form with article details
  4. Submit for review

Article Submission

Searching Evidence

  1. Use the search page to find articles by keywords, authors, or topics
  2. Filter results by various criteria
  3. Read and rate articles based on their quality and relevance

Search Results

Administration & Moderation

  • Admins can manage users and content via the admin dashboard
  • Moderators can review submitted articles in the moderation queue

Admin Interface

🀝 Contributing

We welcome contributions to the CISE_SPEED project! Here's how you can help:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Commit your changes (git commit -m 'Add amazing feature')
  5. Push to the branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

Development Guidelines

  • Follow the TypeScript/JavaScript style guide used in the project
  • Write tests for new functionality
  • Maintain backward compatibility when possible
  • Update documentation as needed
  • Use meaningful commit messages

πŸ› Issues & Support

If you encounter any issues or have questions about the project:

  1. Check the existing Issues to see if it's already reported
  2. If not, open a new issue with detailed information about the problem
  3. For feature requests, please open an issue describing the proposed feature

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Thanks to all contributors who have helped shape this project
  • Special thanks to the open-source community for the amazing tools and libraries used in this project
  • The research community for providing valuable feedback on the platform

πŸ“ž Contact

For questions or support regarding CISE_SPEED, please open an issue in the repository.

About

Software Practice Empirical Evidence Database (SPEED), a searchable database of evidence about different claims about different SE practices

Resources

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •