Inkspire is a full-stack learning plan management and skill sharing platform designed to help users organize their learning journey, manage reminders and milestones, connect with other users, and share knowledge through a collaborative digital environment.
The platform combines structured personal learning management with social interaction features, allowing users to create learning plans, track progress, follow other users, and engage in a skill-sharing ecosystem.
Inkspire is built to support two major purposes:
Users can create, manage, and track structured learning plans with milestones and reminders.
Users can connect with others, follow profiles, and participate in a learning-focused community.
The system follows a full-stack client-server architecture with a React frontend and a Spring Boot backend connected through REST APIs.
- React
- JavaScript
- Context API
- CSS
- REST API integration
- Spring Boot
- Java
- Spring Security
- JWT Authentication
- OAuth2 Authentication
- RESTful APIs
- MySQL
- Spring Data JPA
- Local file upload support
React Frontend
|
| REST API
v
Spring Boot Backend
|
v
MySQL Database
The backend manages authentication, user management, learning plan logic, reminders, follow relationships, and overall platform security.
Inkspire provides secure authentication and authorization features including:
- User signup and login
- JWT-based authentication
- OAuth2 login support (Google)
- Protected routes for authenticated users
- Forgot password functionality
The platform supports structured learning management through dedicated planning features.
Users can:
- Create learning plans
- View and manage existing plans
- Track progress through milestones
- Organize learning activities in a structured way
- Maintain personalized learning paths
Each learning plan can be divided into smaller milestones to support better tracking and progress visibility.
This helps users:
- Divide goals into manageable stages
- Track completion progress
- Monitor learning consistency
Inkspire includes reminder functionality to support learning continuity.
Users can:
- Create reminders for learning tasks
- View upcoming reminders
- Stay consistent with study or skill development goals
Each user has a profile within the platform.
Profile-related features include:
- User identity and account management
- Viewing personal information
- Accessing personal learning activity
- Managing presence within the community
Inkspire is not only a personal planner but also a social learning platform.
Users can:
- Follow other users
- View followed learning plans
- Explore other users in the system
- Interact in a skill-sharing environment
These features help build a collaborative learning community.
Inkspire supports a skill-sharing concept where users benefit from a learning-focused social ecosystem.
Examples include:
- Sharing learning experiences
- Following other learners
- Exploring learning journeys
- Building a community around growth and collaboration
The frontend is organized into reusable components and supporting modules.
- Login
- Signup
- Forgot Password
- Dashboard
- Create Plan
- Learning Plans
- Followed Plans
- Profile
- Reminders
- User List
- Header / Footer
- Private Route Handling
- Authentication Context
- Follow Context
- Notification Context
- API handling
- Authentication service
- Form validations
The backend is organized into modular packages.
- Security configuration
- JWT authentication filter
- JWT token provider
- OAuth2 configuration
- Web configuration
- LocalDateTime deserialization support
- Authentication controller
- Login controller
- User controller
- Learning plan controller
- Root controller
- Global error controller
- User
- LearningPlan
- Milestone
- Reminder
- UserFollow
- User repository
- Learning plan repository
- Reminder repository
- User follow repository
- User service
- Learning plan service
- Service implementations
The backend contains an uploads directory for storing uploaded files during development.
Uploaded files are stored locally when running the application locally.
For production deployment, cloud storage services such as:
- Amazon S3
- Cloudinary
are recommended.
INKSPIRE
│
├── inkspire-backend
│ ├── src/main/java/com/inkspire/inkspire
│ │ ├── config
│ │ ├── controller
│ │ ├── exception
│ │ ├── model
│ │ ├── payload
│ │ ├── repository
│ │ ├── service
│ │ └── InkspireApplication.java
│ │
│ ├── src/main/resources
│ │ └── application.properties
│ │
│ ├── uploads
│ │ └── .gitkeep
│ │
│ ├── pom.xml
│ └── mvnw
│
├── inkspire-frontend
│ ├── public
│ ├── src
│ │ ├── components
│ │ │ └── auth
│ │ ├── context
│ │ ├── services
│ │ ├── styles
│ │ ├── utils
│ │ ├── App.js
│ │ └── index.js
│ │
│ ├── package.json
│ └── package-lock.json
│
└── README.md
- Java 17 or later
- Maven
- MySQL Server
Create a MySQL database named:
inkspire
Example configuration in application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/inkspire
spring.datasource.username=YOUR_DB_USERNAME
spring.datasource.password=YOUR_DB_PASSWORD
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect
spring.jpa.hibernate.ddl-auto=update
cd inkspire-backend
./mvnw spring-boot:run
If Maven Wrapper does not work:
mvn spring-boot:run
The backend runs on:
http://localhost:8081
- Node.js
- npm
cd inkspire-frontend
npm install
npm start
The React application runs on:
http://localhost:3000
Inkspire uses modern authentication and security mechanisms including:
- JWT-based authentication
- Spring Security
- OAuth2 login (Google)
- Protected frontend routes
- Backend authorization controls
These mechanisms help protect user accounts and secure sensitive operations.
Potential future enhancements include:
- Real-time notifications
- Advanced skill-sharing posts
- Learning analytics dashboard
- Plan collaboration between users
- Cloud-based media storage
- Email-based reminder delivery
- Mobile responsive improvements
- Docker-based deployment
- Cloud hosting
Inkspire is a full-stack learning plan management and skill sharing platform prototype demonstrating:
- Authentication
- Structured learning plan management
- Reminder systems
- User follow relationships
- Social learning features
The platform can be extended into a more advanced collaborative learning ecosystem with additional community-driven features and production-ready infrastructure.
Chanuth Jayasekera