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.
- 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:
The application follows a modern full-stack architecture:
- 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
- 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
- Node.js (v18 or higher)
- npm or yarn
- MongoDB (local instance or cloud service like MongoDB Atlas)
git clone https://github.com/your-username/CISE_SPEED.git
cd CISE_SPEEDCreate 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:3000For 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# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm install# Terminal 1: Start the backend server
cd backend
npm run start:dev
# Terminal 2: Start the frontend server
cd frontend
npm run devThe application will be available at http://localhost:3000
cd backend
npm run build
npm run start:prodcd frontend
npm run build
npm start# 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# Run tests
cd frontend
npm run test
# Run tests in watch mode
npm run test:watch
# Generate coverage report
npm run test:coverageCISE_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
- Visit the application homepage
- Click on "Register" to create an account
- Use your credentials to log in
- Log in to your account
- Navigate to the "Submit Article" page
- Fill out the comprehensive form with article details
- Submit for review
- Use the search page to find articles by keywords, authors, or topics
- Filter results by various criteria
- Read and rate articles based on their quality and relevance
- Admins can manage users and content via the admin dashboard
- Moderators can review submitted articles in the moderation queue
We welcome contributions to the CISE_SPEED project! Here's how you can help:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- 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
If you encounter any issues or have questions about the project:
- Check the existing Issues to see if it's already reported
- If not, open a new issue with detailed information about the problem
- For feature requests, please open an issue describing the proposed feature
This project is licensed under the MIT License - see the LICENSE file for details.
- 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
For questions or support regarding CISE_SPEED, please open an issue in the repository.








