Push Serbia is a platform for supporting and promoting open-source projects that aim to create positive social impact in Serbia. The platform allows users to propose projects, vote on them, and track their progress from inception to completion.
- Project Showcase: Browse and discover impactful open-source projects
- Voting System: Community-driven project prioritization
- Project Lifecycle Management: Track projects through various stages (Pending, Voting, In Progress, Maintenance, Closed)
- User Profiles: Create and manage your profile
- Project Creation: Propose new open-source projects for community support
- Admin Dashboard: Moderation and management tools for platform administrators
- Authentication System: Secure user authentication and authorization
- Frontend Framework: Angular 19
- UI Components: Tailwind CSS, Flowbite
- Rich Text Editing: ngx-quill
- Authentication: Angular Fire
- Error Tracking: Sentry
- Server-Side Rendering: Angular SSR with Express
- Build Tools: Angular CLI
- Node.js (v18 or higher)
- npm (v9 or higher)
- Angular CLI (v19 or higher)
-
Clone the repository:
git clone https://github.com/your-organization/pushserbia-fe.git cd pushserbia-fe
-
Install dependencies:
npm install
-
Set up environment variables:
- Create environment files based on the examples in the
src/environments
directory
- Create environment files based on the examples in the
Start the development server:
npm start
The application will be available at http://localhost:4200/
. The app will automatically reload if you change any of the source files.
Build the project for production:
npm run build
This will create optimized production files in the dist/
directory and handle Sentry sourcemaps for error tracking.
Run unit tests:
npm test
To serve the SSR (Server-Side Rendering) version:
npm run serve:ssr:pushserbia-fe
We welcome contributions to Push Serbia! Here's how you can help:
- Fork the Repository: Create your own fork of the project
- Create a Feature Branch:
git checkout -b feature/amazing-feature
- Make Your Changes: Implement your feature or bug fix
- Run Tests: Ensure your changes don't break existing functionality
- Commit Your Changes:
git commit -m 'Add some amazing feature'
- Push to the Branch:
git push origin feature/amazing-feature
- Open a Pull Request: Submit your changes for review
- Follow the Angular style guide
- Write clean, maintainable, and testable code
- Include appropriate tests for new features
- Update documentation as needed
- Respect the existing code architecture
- Be open to feedback and willing to make changes to your contributions
This project is licensed under the MIT License - see the LICENSE file for details.
- All the contributors who have helped shape Push Serbia
- The open-source community for their invaluable tools and libraries