A web application that helps 42 students discover and explore 42 School projects with filtering, searching, and comprehensive project information.
Visit here! https://42projects.cc
42Projects provides a streamlined way to browse outer core and common core projects at 42 School. Instead of navigating through multiple pages on 42's intranet, students can view all projects in one dynamic, filterable table with comprehensive project details.
- Information Scattered: Project information is spread across multiple intranet pages
- Poor Discoverability: Hard to find projects matching specific criteria
- Limited Filtering: Basic search functionality on the official platform
- Time Consuming: Manual navigation through individual project pages
- Secure 42 OAuth integration
- Session-based authentication
- Browse all common core and outer core projects in one interface
- Dynamic table with sortable columns
- Expandable rows for detailed project information
- Filter by programming language (soon..)
- Filter by specialization track
- Filter by project type (solo/group)
- Real-time search by project name or description
- Project descriptions and objectives
- Estimated completion time
- XP points awarded
- Direct access to project subjects (PDF downloads) (soon..)
- Gruvbox-inspired dark theme
- Keyboard shortcuts (Ctrl+K for search)
- Fast loading and smooth interactions
Whether you're planning your learning path or looking for your next challenge, 42Projects helps you:
- Discover Projects: Find projects that match your interests and skill level
- Plan Your Path: Understand prerequisites and progression through specializations
- Save Time: Access all project information without multiple page visits
- Make Informed Decisions: View detailed descriptions and time estimates before starting
- Framework: Django with Django REST Framework
- Database: PostgreSQL
- Authentication: 42 OAuth integration
- API: RESTful API with filtering and pagination
- Framework: React with TypeScript
- Styling: Tailwind CSS with custom design system
- State Management: React hooks and context
- Build Tool: Vite
- Containerization: Docker and Docker Compose
- Reverse Proxy: Nginx
- SSL/CDN: Cloudflare Tunnel
- Database: PostgreSQL
We welcome contributions from the 42 community! This project is built by students, for students.
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Follow the existing code style
- Update documentation as needed
- Commit your changes
git commit -m 'Add amazing feature'
- Push to your branch
git push origin feature/amazing-feature
- Open a Pull Request
- Code Style: Follow PEP 8 for Python, ESLint rules for TypeScript
- Documentation: Update README and inline comments
- Commits: Use conventional commit messages
- Issues: Check existing issues before creating new ones
- Bug fixes and improvements
- New features that benefit 42 students
- Documentation improvements
- UI/UX enhancements
- Performance optimizations
This project is licensed under the MIT License - see the LICENSE file for details.
Found a bug or have a feature request? Please check our GitHub Issues page:
- Search existing issues to avoid duplicates
- Use the provided issue templates
- Include detailed steps to reproduce bugs
- Attach screenshots when helpful
- Documentation: Check this README and inline code comments
- Issues: Open a GitHub issue for bugs or feature requests
- Community: Engage with other contributors in issue discussions
- Backend API with Django REST Framework
- Frontend with React and TypeScript
- 42 OAuth authentication
- Project filtering and search
- Responsive design
- Production deployment
- Add language to filters (need to manually add into each one)
- Subject download field
- Project bookmarking system
- Data Enhancement
- Organize piscine subjects
- Performance optimizations
- Multi-language support
- Student project reviews and ratings
- Help check with RCNP's progression (inspired from here)
- Mobile application
- Offline functionality
- Fix CSRF on login and logout
- Fix Missing SSL Certificate and nginx https redirect
- Authentication: 42 OAuth integration with secure session management
- Project Database: Complete integration with 42 API for project data
- Search & Filter: Advanced filtering by language, specialization, and project type
- User Interface: Modern responsive design with Gruvbox theme
- Project Details: Comprehensive project information with expandable descriptions
- Performance: Optimized API endpoints with efficient data loading
- Real-time project search functionality
- Sortable table columns (name, XP, time, type)
- Persistent filter preferences using local storage
- Keyboard shortcuts for improved accessibility
- Piscine projects are scattered and are difficult to read and understand (I know)
- This will be done in Milestone 2, when I will try to group those projects
- The design isn't the most responsive (especially on mobile)
Built with ❤️ for the 42 community