DataCoreX is a comprehensive data center management platform that provides organization management, storage solutions, node monitoring, and user authentication with a modern web interface.
- Organization Management: Multi-tenant organization registration and management
- User Authentication: JWT-based secure authentication system
- Storage Management: File upload, storage, and management capabilities
- Node Monitoring: Real-time data center node monitoring and health checks
- Activity Logging: Comprehensive audit trail and activity logging
- API Integration: RESTful APIs with API key authentication
- JWT token-based authentication
- Role-based access control (Admin, Technician, User)
- API key management and validation
- Secure password encryption with BCrypt
- CORS protection and security headers
- Spring Boot backend with H2/PostgreSQL database support
- React frontend with Material-UI components
- Real-time WebSocket communication
- Flyway database migrations
- Comprehensive API documentation
- Production-ready configuration
- Java 17+ - Programming language
- Spring Boot 3.3.0 - Application framework
- Spring Security - Authentication and authorization
- Spring Data JPA - Data persistence
- H2/PostgreSQL - Database options
- Flyway - Database migrations
- JWT - Token authentication
- Maven - Build tool
- React 18.x - UI framework
- Material-UI - Component library
- JavaScript/TypeScript - Programming languages
- WebSocket - Real-time communication
- npm - Package manager
- Java 17 or higher
- Node.js 16+ and npm
- Maven 3.6+
- Git
git clone https://github.com/yourusername/DataCoreX.git
cd DataCoreXcd datacorex-backend
# Build the application
mvn clean install
# Run the backend
mvn spring-boot:runThe backend will start on http://localhost:8081
cd datacorex-frontend
# Install dependencies
npm install
# Start the development server
npm startThe frontend will start on http://localhost:3000
- Web Interface: http://localhost:3000
- API Documentation: http://localhost:8081/api-docs
- H2 Console: http://localhost:8081/h2-console
- Health Check: http://localhost:8081/actuator/health
Copy .env.template to .env and configure your environment:
cp .env.template .envKey configuration options:
DB_URL- Database connection URLJWT_SECRET- JWT signing secret (minimum 256 bits)S3_ACCESS_KEY- AWS S3 access key (optional)S3_SECRET_KEY- AWS S3 secret key (optional)
The application supports both H2 (development) and PostgreSQL (production):
H2 (Default):
spring.datasource.url=jdbc:h2:file:./data/datacorex
spring.datasource.username=sa
spring.datasource.password=PostgreSQL:
spring.datasource.url=jdbc:postgresql://localhost:5432/datacorex
spring.datasource.username=postgres
spring.datasource.password=your_passwordcd datacorex-backend
# Run with development profile
mvn spring-boot:run -Dspring-boot.run.profiles=dev
# Run tests
mvn test
# Build production JAR
mvn clean package -Pprodcd datacorex-frontend
# Start development server with hot reload
npm start
# Run tests
npm test
# Build for production
npm run buildThe API documentation is available at:
- Swagger UI: http://localhost:8081/swagger-ui.html
- OpenAPI JSON: http://localhost:8081/v3/api-docs
The API supports two authentication methods:
-
JWT Token (for web interface):
# Login to get token curl -X POST http://localhost:8081/api/auth/login \ -H "Content-Type: application/json" \ -d '{"username":"admin","password":"password"}' # Use token in requests curl -H "Authorization: Bearer YOUR_JWT_TOKEN" \ http://localhost:8081/api/users/profile
-
API Key (for programmatic access):
curl -H "X-API-Key: YOUR_API_KEY" \ http://localhost:8081/api/organization/profile
# Build and run with Docker Compose
docker-compose up -d- Build the backend JAR:
mvn clean package -Pprod - Build the frontend:
npm run build - Deploy JAR file to your server
- Serve frontend build files with nginx/apache
- Configure environment variables
- Set up database (PostgreSQL recommended for production)
Create appropriate configuration files:
application-prod.propertiesfor productionapplication-staging.propertiesfor staging- Use environment variables for sensitive data
# Backend tests
cd datacorex-backend
mvn test
# Frontend tests
cd datacorex-frontend
npm testUse the provided test scripts:
# Test all API endpoints
./test-comprehensive-api.sh
# Test integration scenarios
./test-integration.shDataCoreX/
├── datacorex-backend/ # Spring Boot backend
│ ├── src/main/java/ # Java source code
│ ├── src/main/resources/ # Configuration files
│ ├── src/test/ # Test files
│ └── pom.xml # Maven configuration
├── datacorex-frontend/ # React frontend
│ ├── src/ # React source code
│ ├── public/ # Static assets
│ └── package.json # npm configuration
├── docs/ # Documentation
├── .env.template # Environment template
├── .gitignore # Git ignore rules
└── README.md # This file
This application implements several security measures:
- JWT-based authentication with configurable expiration
- Password encryption using BCrypt
- Role-based access control
- API key authentication for programmatic access
- CORS protection
- SQL injection prevention through JPA
- Input validation and sanitization
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or need support:
- Check the existing issues
- Create a new issue with detailed information
- Include logs, configuration, and steps to reproduce
- Spring Boot team for the excellent framework
- React team for the UI library
- Material-UI for the component library
- All contributors and supporters of this project
- Author: Your Name
- Email: your.email@example.com
- GitHub: @yourusername
⭐ If you find this project helpful, please give it a star on GitHub!
# 🚀 Welcome to **DataCoreX**
_DataCoreX_ is your future-proof, modular full-stack platform. Designed to scale. Built to empower. Engineered for privacy-first data operations, educational flows, and fintech integrations — with a local-first twist.
> ✨ Crafted by [@Lintshiwe](https://github.com/Lintshiwe) — methodical, ethical, and always one step ahead.
---
## ⚙️ Tech Arsenal
| Layer | Tech Stack |
| -------- | --------------------------------------------- |
| Frontend | TypeScript · Next.js · HTML/CSS |
| Backend | Java · Node.js · Firebase |
| Tools | VSCode · GitHub Actions (Coming Soon) · Linux |
---
## 🎯 Why DataCoreX?
🔐 **Privacy-Centric**: Every module respects user data
🧩 **Modular**: Plug, play, scale. Simple.
🌍 **Local-Ready**: Fintech + identity systems for African markets
📚 **Educational Workflows**: Perfect for platforms that teach & grow
🛡️ **Security First**: Ethical deployment baked in
---
## 🗂️ Project MapDataCoreX/ ├── datacorex-frontend/ → Dynamic UI & UX ├── datacorex-backend/ → API & logic layer ├── .vscode/ → Dev setup ├── .env.example → Env blueprint └── .gitignore
---
## 🧠 Kickstart Guide
```bash
# Frontend setup
cd datacorex-frontend
npm install
npm run dev
☕ Pro tip: Start with frontend → plug in backend as modules mature.
- Backend configs: 🔜
- Roadmap: CI/CD, containerization, plug-in modules
- Core Values: Accessibility · Maintainability · Ethics
DataCoreX is still in the lab — and your brilliance is welcome.
Hop into GitHub Issues or Discussions to suggest features, squash bugs, or propose fintech/API integrations.
Let’s add a splash of branding, diagrams, user journeys or onboarding guides.
Say the word — and we’ll cook up a landing experience that turns heads and converts users.
Want me to stylize this with badges, shields, or animated visual hints? Or convert this into a dev-friendly landing page? I’ve got you.