A full-stack community platform designed to connect residents of FloreΘti, Cluj, Romania. This project provides a comprehensive digital hub for local news, events, community groups, local businesses, and civic engagement.
- User Authentication & Authorization - Secure JWT-based authentication system
- Community Events - Create, discover, and manage local events
- Community Groups - Join and participate in interest-based groups
- Local Business Directory - Discover and support local businesses
- News & Forum - Share and discuss community news and topics
- Suggestions System - Submit and vote on community improvement ideas
- Interactive Maps - Location-based services using Leaflet
- Responsive Design - Mobile-first approach with modern UI/UX
- Real-time Updates - Dynamic content loading and updates
- Search & Filter - Advanced search capabilities across all content
- Voting System - Community-driven content ranking
- Comment System - Interactive discussions on posts and events
- User Profiles - Personalized user experience with interests tracking
- Next.js 15 - React framework with App Router
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Accessible component primitives
- React Hook Form - Form handling and validation
- Leaflet - Interactive maps integration
- Lucide React - Modern icon library
- Spring Boot 3.5 - Java-based REST API
- Spring Security - Authentication and authorization
- Spring Data JPA - Database abstraction layer
- MySQL - Relational database
- JWT - Stateless authentication
- Lombok - Reduced boilerplate code
- Maven - Dependency management
- Railway - Cloud deployment platform
- Nixpacks - Build system for Railway
- Node.js 18+
- Java 17+
- MySQL 8.0+
- Maven 3.6+
cd frontend-next
npm install
npm run devcd backend-java
mvn clean install
mvn spring-boot:runCreate .env.local in the frontend directory:
NEXT_PUBLIC_API_URL=http://localhost:8080/apiConfigure application.properties in the backend:
spring.datasource.url=jdbc:mysql://localhost:3306/epicvision
spring.datasource.username=your_username
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update
jwt.secret=your_jwt_secretEpicVision/
βββ frontend-next/ # Next.js frontend application
β βββ src/
β β βββ app/ # App Router pages
β β βββ components/ # Reusable UI components
β β βββ lib/ # Utilities and configurations
βββ backend-java/ # Spring Boot backend application
β βββ src/main/java/
β β βββ controller/ # REST API endpoints
β β βββ service/ # Business logic layer
β β βββ repository/ # Data access layer
β β βββ domain/ # Entity models
β β βββ dto/ # Data transfer objects
β β βββ config/ # Configuration classes
βββ railway.toml # Railway deployment configuration
POST /api/auth/login- User loginPOST /api/auth/register- User registration
GET /api/users- Get all usersGET /api/users/me- Get current userPOST /api/users- Create new user
GET /api/events- Get all eventsPOST /api/events- Create new eventGET /api/events/{id}- Get specific event
GET /api/groups- Get all groupsPOST /api/groups- Create new groupGET /api/groups/{id}- Get specific group
GET /api/businesses- Get all businessesPOST /api/businesses- Create new businessGET /api/businesses/{id}- Get specific business
GET /api/posts- Get all forum postsPOST /api/posts- Create new postGET /api/posts/{id}- Get specific post
GET /api/suggestions- Get all suggestionsPOST /api/suggestions- Create new suggestionGET /api/suggestions/{id}- Get specific suggestion
The application uses a warm, community-focused color palette:
- Primary:
#774E3C(Warm Brown) - Secondary:
#E8DCC4(Cream) - Accent:
#D4C4A8(Light Beige)
Typography features the elegant Libre Baskerville font for headings, creating a sophisticated and welcoming aesthetic.
The platform is designed for the Romanian community in FloreΘti, with:
- Romanian language interface
- Local cultural considerations
- Community-specific features and terminology
- JWT-based authentication
- Role-based access control (USER/ADMIN)
- Secure password handling
- CORS configuration
- Input validation and sanitization
- Mobile-first approach
- Tablet and desktop optimizations
- Touch-friendly interface
- Progressive Web App features
The application is deployed on Railway with:
- Automatic builds from Git
- Health checks and monitoring
- Environment variable management
- SSL certificate handling
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add 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.
- Spring Boot team for the excellent framework
- Next.js team for the React framework
- Tailwind CSS for the utility-first CSS framework
- The FloreΘti community for inspiration and feedback
EpicVision - Connecting the community of FloreΘti, one digital interaction at a time.