The core frontend application for build-a-thing-and-show organization. A modern React application featuring user authentication, routing, and construction notice functionality.
- React 18 - Modern React with hooks and functional components
- React Router DOM - Client-side routing and navigation
- Bootstrap 5 + React Bootstrap - Responsive UI components and styling
- Axios - HTTP client for API communication
- Jest + React Testing Library - Comprehensive testing framework
- ESLint - Code quality and consistency enforcement
- User Authentication System
- User login and registration
- Password recovery functionality
- Protected routes and navigation
- Responsive Design - Mobile-first approach with Bootstrap
- Client-side Routing - Single-page application with React Router
- Construction Notice Management - Core business functionality
- 404 Error Handling - Graceful error pages for invalid routes
- Node.js (version 16 or higher)
- npm (comes with Node.js)
-
Clone the repository:
git clone <repository-url> cd core-ui
-
Install dependencies:
npm install
-
Start the development server:
npm start
-
Open http://localhost:3000 in your browser.
| Command | Description |
|---|---|
npm start |
Runs the app in development mode with hot reload |
npm test |
Launches test runner in interactive watch mode |
npm run build |
Builds the app for production with optimizations |
npm run lint |
Runs ESLint to check code quality and style |
src/
├── components/ # React components
│ ├── About.js # About page component
│ ├── ConstructionNoticeCreate.js # Core business logic component
│ ├── ForgotPassword.js # Password recovery form
│ ├── Home.js # Landing page (renders ConstructionNoticeCreate)
│ ├── Login.js # User login form
│ ├── NotFound.js # 404 error page
│ └── Register.js # User registration form
├── App.js # Main application with routing configuration
├── App.test.js # Application tests
└── index.js # Application entry point
/- Home page with construction notice functionality/login- User authentication/register- New user registration/forgot-password- Password recovery/about- About page*- 404 Not Found page
- ESLint Configuration: Extends
react-appandreact-app/jestrulesets - File Naming: Components use PascalCase (e.g.,
Login.js) - Code Style: Enforced newlines at end of files (
eol-lastrule) - Modern JavaScript: Latest ECMAScript features with JSX support
Run tests with:
npm testThe project uses Jest and React Testing Library for unit and integration testing.
Check code quality with:
npm run lintThe application is containerized with Docker:
# Build the Docker image
docker build -t core-ui .
# Run the container
docker run -p 3000:3000 core-uiThe Dockerfile uses Node.js 23 Alpine for a lightweight production image.
Create an optimized production build:
npm run buildThis creates a build folder with minified, production-ready files.
- Code Quality: Ensure all ESLint rules pass
- Testing: Write tests for new features and maintain existing test coverage
- Components: Follow existing component patterns and file organization
- Styling: Use React Bootstrap components for consistency
- Create a feature branch from
main - Make your changes following the code standards
- Run tests and linting:
npm test && npm run lint - Create a pull request with a clear description
This project is private and proprietary to the build-a-thing-and-show organization.