Win a copy of Cloud Native PatternsE this week in the Cloud forum
or Natural Language Processing in the AI/ML forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Devaka Cooray
  • Liutauras Vilda
  • Jeanne Boyarsky
  • Bear Bibeault
Sheriffs:
  • Paul Clapham
  • Knute Snortum
  • Rob Spoor
Saloon Keepers:
  • Tim Moores
  • Ron McLeod
  • Piet Souris
  • Stephan van Hulst
  • Carey Brown
Bartenders:
  • Tim Holloway
  • Frits Walraven
  • Ganesh Patekar

Project ideas

 
Sheriff
Posts: 13549
223
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Let's discuss our initial project ideas here.

I'd like to start with some goals of the project. We already have one goal:

1. Give Ranch Members a way to practice and learn various software development techniques by contributing to an open source project.

I'd like to add:
2. Give students and aspiring programmers a way to gain real-world software development experience.
3. Give participants a chance to learn how to use different technologies like Spring, Maven, Gradle, Servlets, Web Services, etc.
4. Create a product that is useful and can change the world (even just a little bit)

I know that last one is a bit lofty but I buy into what Dan Pink says motivates creative people: Autonomy, Mastery, and Purpose.
 
Rancher
Posts: 89
13
Scala Eclipse IDE MySQL Database Tomcat Server Chrome Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I think it might also be useful to have a goal relating to  the purpose for more experienced contributors

5. Give experienced developers a way to disseminate their experience and ideas through a "mentor-lite" situation.

As for project ideas:

1. There is an interesting kata on codewars that served as my introduction to machine learning. it might serve as a week long project or something we could build on. We might need to request the permission of the author

2. Maybe a realtime currency converter that retrieves current exchange rates and possibly provides a GUI. If realtime conversion isn't available we could also retrieve an XML with the rates and parse it.

3. a coderanch android app

4. We could also state an interesting technology and create a project with it specifically in mind. Neo4j, Spring, MongoDB, etc

5. A game would also be likely to bring people in as many young developers have an interest in their development. I've created a simple implementation of asteroids in the past and it was great for learning OOP.

-Zach
 
Marshal
Posts: 6943
471
Mac OS X VI Editor BSD Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Zach Rode wrote:As for project ideas:


Ok, I'll play the role of pessimist this time.

Zach Rode wrote:1. There is an interesting kata on codewars that served as my introduction to machine learning. it might serve as a week long project or something we could build on. We might need to request the permission of the author


I found it very niche, it isn't something you'd need as a knowledge at a wider scale. I wouldn't go for that one. I would find this one interesting and challenging as for a puzzle competitions to make head spin harder for a while, but no more than that.

2. Maybe a realtime currency converter that retrieves current exchange rates and possibly provides a GUI. If realtime conversion isn't available we could also retrieve an XML with the rates and parse it.


All banks websites do that, no?

Zach Rode wrote:3. a coderanch android app


We were thinking about that few years ago, but having in mind that there are mobile version of site, or even such existing technologies as responsive design, for a forum to have an Android/iOS app I'd say isn't necessary. Wouldn't bring any significant benefit.

4 and 5 non concrete.

Reading what Junilu wrote, I got an impression that Junilu in particular is interested in an ambitious project, which could possibly bring some real benefit to community, not necessarily this one, maybe health field or finance or similar.

For instance - public ledger based on the blockchain technology. Not necessarily related with cryptocurrencies. Maybe something else, for instance voting system based on the blockchain technology. I've read somewhere that voting systems could benefit from that. At least in the countries I know, all the votings go in paper formats and electronic ones considered to be error-prone, easy to crack.
 
Bartender
Posts: 1868
81
Android IntelliJ IDE MySQL Database Chrome Java
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Were you looking at creating some large application(s) which may or may not use microservices or are you looking at smaller projects?
A large project could be a FaceBook like site with many programmers contributing to it.
A small project like a site where people can upload a file and comment on it with only one programmer contributing to it.

Please do not forget that what a seasoned programmer may think is easy and quick to program a rookie may think the opposite.
 
Junilu Lacar
Sheriff
Posts: 13549
223
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Liutauras Vilda wrote:Reading what Junilu wrote, I got an impression that Junilu in particular is interested in an ambitious project, which could possibly bring some real benefit to community, not necessarily this one, maybe health field or finance or similar.


I was thinking more along the lines of keeping with the Ranch's goal of helping people learn. I've been seeing a lot of buzz lately around Khan Academy and how it has helped many people learn math, science, etc.  Maybe a programming/software development focused version of that, say Ranch Academy, where the work that those German professors I mentioned could somehow tie in.
 
Zach Rode
Rancher
Posts: 89
13
Scala Eclipse IDE MySQL Database Tomcat Server Chrome Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Junilu Lacar wrote:

Liutauras Vilda wrote:Reading what Junilu wrote, I got an impression that Junilu in particular is interested in an ambitious project, which could possibly bring some real benefit to community, not necessarily this one, maybe health field or finance or similar.


I was thinking more along the lines of keeping with the Ranch's goal of helping people learn. I've been seeing a lot of buzz lately around Khan Academy and how it has helped many people learn math, science, etc.  Maybe a programming/software development focused version of that, say Ranch Academy, where the work that those German professors I mentioned could somehow tie in.



How would you think about implementing this? I am familiar mostly with the khan academy videos on Youtube, so that is what I think of, but I don't think it is how you mean it.

I admit my project suggestions might be to small scale, but we also must make sure that the topic is not to overbearing for relatively new programmers. As Pete said, many things experienced developers think is easy, I'll think is difficult, brand new people won't even know it's possible.
 
Liutauras Vilda
Marshal
Posts: 6943
471
Mac OS X VI Editor BSD Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Now that I thinking again, I think I expressed myself not exactly as I wanted.

Zach Rode wrote:it might serve as a week long project or something we could build on.


I guess what I wanted to say is, that we not necessarily need to pressure ourselves with such time scales, instead we better concentrate on quality whatever time that takes, even we can take bigger projects, not necessarily more difficult.

I looked at Khan Academy, but I did not fully understand the idea suggested. Does the idea suggest to build some platform similar to that mentioned, or work on similar fairly small self-contained topics similar to their content?

But I guess if we just simply start, we'd see how things go and which direction we need to shift more. I'd be happy with anything decided.
 
Zach Rode
Rancher
Posts: 89
13
Scala Eclipse IDE MySQL Database Tomcat Server Chrome Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Liutauras Vilda wrote:Now that I thinking again, I think I expressed myself not exactly as I wanted.

Zach Rode wrote:it might serve as a week long project or something we could build on.


I guess what I wanted to say is, that we not necessarily need to pressure ourselves with such time scales, instead we better concentrate on quality whatever time that takes, even we can take bigger projects, not necessarily more difficult.

I looked at Khan Academy, but I did not fully understand the idea suggested. Does the idea suggest to build some platform similar to that mentioned, or work on similar fairly small self-contained topics similar to their content?

But I guess if we just simply start, we'd see how things go and which direction we need to shift more. I'd be happy with anything decided.



I completely agree with this sentiment. Thank you for explaining. A big project without a time limit could certainly be a good approach. The risk we do take with that is parts of it not getting done, depending on how it is decided to divide the work.
 
Liutauras Vilda
Marshal
Posts: 6943
471
Mac OS X VI Editor BSD Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Zach Rode wrote:A big project without a time limit could certainly be a good approach. The risk we do take with that is parts of it not getting done, depending on how it is decided to divide the work.


And this is where we'd divide work by creating small user stories I guess.

For instance:
  • User can login
  • User can logout
  • User can cancel transaction (i.e. interesting thing: but cannot create, because it is not implemented yet)
  • User can print report
  • User can download report

  • What is interesting about slightly bigger projects, that you need to think how to make so, that such functionality could be added in isolation without braking down existing stuff. All that does not necessarily mean something dreadfully complicated.

    But again, these are just ideas out loud, we can probably have same experience on smaller projects too.
    Same Hello World program can be expanded significantly comparing with what we usually see in introductory courses, so all we could learn a lot.

    Maybe really, just start small so we get all concepts in agreement how that would work. And if we gain some success - then we can expand if anyone is still up for.
     
    Saloon Keeper
    Posts: 10404
    221
    • Likes 1
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    A good idea might be to create a product that can be used in the development of that product. That way, people will notice things they will want to improve as they get on with the project and use the product they've made in the process.

    Examples include an issue tracker, a platform for project members to communicate or share code, etc. etc.
     
    Zach Rode
    Rancher
    Posts: 89
    13
    Scala Eclipse IDE MySQL Database Tomcat Server Chrome Java Windows
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Stephan van Hulst wrote:A good idea might be to create a product that can be used in the development of that product. That way, people will notice things they will want to improve as they get on with the project and use the product they've made in the process.

    Examples include an issue tracker, a platform for project members to communicate or share code, etc. etc.



    I like this idea a lot but I'm at a loss for something to do with it. I think as far as sharing code goes we might stick to git as that is the modern day standard for code sharing and has experience of its own. An issue tracker is certainly a good idea. Would you mind expounding more on what you might think the implementation would be? My first thought is webapp backed by an RDBMS? Is that what you were thinking also?
     
    Stephan van Hulst
    Saloon Keeper
    Posts: 10404
    221
    • Likes 1
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I think you're moving too fast. I honestly couldn't care at this point if the product used an RDBMS, or took the opportunity to explore NoSQL alternatives.

    The most important thing right now is to focus on determining the core problem that the product is trying to solve. It would be really nice if the problem wasn't already solved by an existing product, but having a recognizable problem accommodates the educational aspect of the project more than having an unsolved problem.

    It may not seem very inventive, but I firmly believe that turn-based games are immensely suitable for educational projects. The advantages:

  • The core problem is clear: What is the basic concept of the game, and what are the rules? You can easily think about it without thinking in terms of code.
  • Easy to expand upon: Modding communities for turn-based games are prolific.
  • Easy to modularize: Clear separation of concerns. You can create different implementations of the persistence layer, presentation layer, etc.
  • Lends itself well to a web application: The turn based aspect plays nicely with HTTP and REST.
  • Lends itself well to a mobile application: Members can create an Android or iOS app that communicates with the back-end.
  • Core product can be used and debugged without spinning up a web server. Just write a communication layer that uses sockets with a custom protocol rather than using REST controllers.
  • Attractive for beginning programmers: People usually start programming because they like games, not because they're a huge fan of the ERP software that their company uses.
  • Not just for programmers: Members with an artistic streak may want to work on graphics, music or sound.
  • Fun to develop: Members can incorporate new ideas for the game proper.
  • Fun to use: The point of games.
  •  
    Zach Rode
    Rancher
    Posts: 89
    13
    Scala Eclipse IDE MySQL Database Tomcat Server Chrome Java Windows
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Sorry I might have phrased what I meant wrong. I was trying to say did you mean an desktop application or web app or something else.

    I agree with the game idea as something that could be neat. Video games are my hobby and bring a lot of people into programming. The downside being some people are not interested in games at all and the technology is not always applicable to real world situations outside of game development.

    There are many types of turn based games: Strategy, rpg, puzzles, etc. Did you have one in mind? For a while, I've been thinking of a turn based game space game influenced by the card game Star Realms, personally.
     
    Stephan van Hulst
    Saloon Keeper
    Posts: 10404
    221
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Zach Rode wrote:Sorry I might have phrased what I meant wrong. I was trying to say did you mean an desktop application or web app or something else.


    It doesn't matter. It's fully possible to create a web application that has a repository containing the game state injected into its controllers, and at the same time have a desktop application that passes an instance of the repository to a Swing component. Some members might work on the web application while others work on the Swing application. A nice side-effect of this is that it forces the applications to be stateless, with the repository making proper use of transactions.

    The downside being some people are not interested in games at all and the technology is not always applicable to real world situations outside of game development.


    Every kind of application will be uninteresting to some people. I just think that on average, games are most interesting to novice programmers. I disagree about the applicability of the technology. With the exception of sound and display, there is no real difference between the kind of software. That is why many programmers find that while they started programming because they enjoy games, writing accounting or reporting software is at least as fun and interesting.

    There are many types of turn based games: Strategy, rpg, puzzles, etc. Did you have one in mind?


    I would prefer a strategy game, because RPGs are usually very heavy on content, rather than logic, and puzzles don't lend themselves to expansion as well as strategy games. A good idea for a game is much more important than a specific genre though. If a member has a novel idea for a killer dress-up game, that might work as well.

    For a while, I've been thinking of a turn based game space game influenced by the card game Star Realms, personally.


    I don't know it, I'll look it up. Personally I really enjoy the board game Robo Rally, and a couple of years ago I learned a lot by making a clone of it on the PC.
     
    Zach Rode
    Rancher
    Posts: 89
    13
    Scala Eclipse IDE MySQL Database Tomcat Server Chrome Java Windows
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    *Tumble weed rolls*

    Sure been quite in here cowpokes.

    So I'll back a game. Possibly code ranch themed against the evil forces of HR/Business team with a moose super unit. This thing writes itself.

    -Zach
     
    Ranch Hand
    Posts: 92
    3
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Stephan van Hulst wrote:
    I would prefer a strategy game, because RPGs are usually very heavy on content, rather than logic, and puzzles don't lend themselves to expansion as well as strategy games. A good idea for a game is much more important than a specific genre though. If a member has a novel idea for a killer dress-up game, that might work as well.



    I really like that idea... Where do I sign up?
     
    Ranch Hand
    Posts: 144
    2
    Mac Java
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I'd be interested in working on a game project. Perhaps it could be educational too? I've been thinking for a while that making a game of Decisions & Disruptions could be a fun idea.
     
    Stephan van Hulst
    Saloon Keeper
    Posts: 10404
    221
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I don't know it, it sounds like a bit of an affectionate parody on Dungeons and Dragons. I imagine the game would consist of building some sort of infrastructure and then periodic events happen to mess things up? Can you tell us more about your view? The same goes for everyone who's juggling with ideas, by the way.
     
    Bartender
    Posts: 1031
    18
    Mac OS X IntelliJ IDE Oracle Spring VI Editor Tomcat Server Redhat Java Linux
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator

    Maybe a realtime currency converter that retrieves current exchange rates and possibly provides a GUI. If realtime conversion isn't available we could also retrieve an XML with the rates and parse it.



    It looks like Google, Micro$wipe, and Yahoo have closed their REST based feeds, but I did find this;
    https://iextrading.com/developer/docs/#getting-started

    Just to add that you'll only be able to get "near" real time quotes from most public services.  Be fine for what you are wanting to do.  

    From what I know about these things it costs money to get a real time feed.  The major investment banks are happy (well sort of) to pay good money to get the latest market information, and even have fibre optic connections between their systems and the exchanges.  
     
    With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
    • Post Reply Bookmark Topic Watch Topic
    • New Topic
    Boost this thread!